├── .gradle └── vcs-1 │ └── gc.properties ├── app ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── drawable-hdpi │ │ │ │ ├── kotlin_logo.png │ │ │ │ └── ic_placeholder_rectangle_200px.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── kotlin_logo.png │ │ │ │ └── ic_placeholder_rectangle_200px.png │ │ │ ├── drawable-xhdpi │ │ │ │ ├── kotlin_logo.png │ │ │ │ └── ic_placeholder_rectangle_200px.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── kotlin_logo.png │ │ │ │ └── ic_placeholder_rectangle_200px.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ ├── kotlin_logo.png │ │ │ │ └── ic_placeholder_rectangle_200px.png │ │ │ ├── drawable │ │ │ │ ├── poster_show_not_available.png │ │ │ │ ├── bg_corner_selected.xml │ │ │ │ ├── bg_empty_corner.xml │ │ │ │ ├── tags_blue_rounded_corners.xml │ │ │ │ ├── bg_corner_normal.xml │ │ │ │ ├── bg_red_status.xml │ │ │ │ ├── bg_corner_gray_thin.xml │ │ │ │ ├── bg_corner_search.xml │ │ │ │ ├── linear_gradient.xml │ │ │ │ ├── bg_oval.xml │ │ │ │ ├── ic_arrow_back_black_24dp.xml │ │ │ │ ├── bg_corner.xml │ │ │ │ ├── ic_home_black_24dp.xml │ │ │ │ ├── ic_check_black_24dp.xml │ │ │ │ ├── bg_gradient_evening_sunshine.xml │ │ │ │ ├── ic_toc_black_24dp.xml │ │ │ │ ├── ic_content_copy_24dp.xml │ │ │ │ ├── ic_cancel_button.xml │ │ │ │ ├── ic_access_time_black_24dp.xml │ │ │ │ ├── ic_refresh_24dp.xml │ │ │ │ ├── ic_search_black_24dp.xml │ │ │ │ ├── ic_do_not_disturb_black_24dp.xml │ │ │ │ ├── ic_up_rcv.xml │ │ │ │ └── ic_settings_black_24dp.xml │ │ │ ├── layout │ │ │ │ ├── progress_dialog.xml │ │ │ │ ├── view_divider.xml │ │ │ │ ├── container.xml │ │ │ │ ├── fragment_portal.xml │ │ │ │ ├── activity_image_detail.xml │ │ │ │ ├── fragment_banner_images.xml │ │ │ │ ├── view_banner.xml │ │ │ │ ├── view_error_connection.xml │ │ │ │ ├── activity_comic.xml │ │ │ │ ├── fragment_test.xml │ │ │ │ ├── item_loading.xml │ │ │ │ ├── tab_text_view.xml │ │ │ │ ├── view_rcy_horizontal.xml │ │ │ │ ├── view_scroll_top.xml │ │ │ │ ├── fragment_collection.xml │ │ │ │ ├── fragment_video.xml │ │ │ │ ├── view_recyclerview.xml │ │ │ │ ├── activity_paging_test.xml │ │ │ │ ├── newton_cradle_loading.xml │ │ │ │ ├── view_no_data.xml │ │ │ │ ├── layout_state_network_off.xml │ │ │ │ ├── activity_splash.xml │ │ │ │ ├── activity_setting.xml │ │ │ │ ├── empty_layout.xml │ │ │ │ ├── fragment_home.xml │ │ │ │ └── item_title_see_all.xml │ │ │ ├── anim │ │ │ │ ├── layout_animation_fall_down.xml │ │ │ │ ├── fade_in.xml │ │ │ │ ├── fade_out.xml │ │ │ │ └── item_animation_fall_down.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── menu │ │ │ │ ├── menu_home.xml │ │ │ │ ├── menu_setting.xml │ │ │ │ └── menu_comic_avg.xml │ │ │ ├── transition │ │ │ │ └── changebounds_with_arcmotion.xml │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ ├── dimen_image_ratio.xml │ │ │ │ └── strings.xml │ │ └── java │ │ │ └── com │ │ │ └── lyhoangvinh │ │ │ └── simple │ │ │ ├── data │ │ │ ├── entities │ │ │ │ ├── EntinyDiff.kt │ │ │ │ ├── Entities.kt │ │ │ │ ├── Connection.kt │ │ │ │ ├── VisibilityView.kt │ │ │ │ ├── DataEmpty.kt │ │ │ │ ├── BitmapWithQuality.kt │ │ │ │ ├── OptionEntity.kt │ │ │ │ ├── comic │ │ │ │ │ ├── Comics.kt │ │ │ │ │ ├── Volume.kt │ │ │ │ │ ├── Issues.kt │ │ │ │ │ └── ImageAll.kt │ │ │ │ ├── Status.kt │ │ │ │ ├── avgle │ │ │ │ │ ├── SearchHistory.kt │ │ │ │ │ ├── MergedData.kt │ │ │ │ │ └── Video.kt │ │ │ │ └── State.kt │ │ │ ├── response │ │ │ │ ├── ResponseBiZip.kt │ │ │ │ ├── ResponseTriper.kt │ │ │ │ ├── ResponseFourZip.kt │ │ │ │ ├── BaseResponseAvgle.kt │ │ │ │ ├── CategoriesResponse.kt │ │ │ │ ├── BaseResponseComic.kt │ │ │ │ ├── VideosResponseAvgle.kt │ │ │ │ └── CollectionsResponseAvgle.kt │ │ │ ├── itemviewmodel │ │ │ │ ├── SearchItem.kt │ │ │ │ ├── DividerItem.kt │ │ │ │ ├── TitleSeeAllItem.kt │ │ │ │ ├── SearchDataItem.kt │ │ │ │ ├── SearchHistoryItem.kt │ │ │ │ ├── CollectionBannerItem.kt │ │ │ │ ├── VideoItem.kt │ │ │ │ ├── CategoryItem.kt │ │ │ │ └── CollectionBottomItem.kt │ │ │ ├── source │ │ │ │ ├── base │ │ │ │ │ ├── PlainResponseBiConsumer.kt │ │ │ │ │ ├── PlainResponseFourConsumer.kt │ │ │ │ │ ├── PlainResponseTriperConsumer.kt │ │ │ │ │ ├── BasePositionalDataSource.kt │ │ │ │ │ ├── RequestState.kt │ │ │ │ │ ├── Resource.kt │ │ │ │ │ └── SimpleNetworkBoundSource.kt │ │ │ │ ├── comic │ │ │ │ │ ├── ComicPagingDataSource.kt │ │ │ │ │ └── ComicLocalPagingDataSource.kt │ │ │ │ └── avg │ │ │ │ │ └── CollectionDataSource.kt │ │ │ ├── repo │ │ │ │ ├── HomeRepo.kt │ │ │ │ ├── VideoRepo.kt │ │ │ │ ├── SearchPagedRepo.kt │ │ │ │ ├── ImageRepo.kt │ │ │ │ ├── CollectionsRepo.kt │ │ │ │ ├── impl │ │ │ │ │ └── ImageRepoImpl.kt │ │ │ │ ├── IssuesRepo.kt │ │ │ │ └── SearchRepo.kt │ │ │ ├── dao │ │ │ │ ├── BaseDao.kt │ │ │ │ ├── SearchHistoryDao.kt │ │ │ │ ├── CategoriesDao.kt │ │ │ │ ├── IssuesDao.kt │ │ │ │ ├── VideosDao.kt │ │ │ │ └── CollectionDao.kt │ │ │ ├── typecoverter │ │ │ │ ├── VolumeTypeConverter.kt │ │ │ │ └── ImageTypeConverter.kt │ │ │ ├── services │ │ │ │ ├── ComicVineService.kt │ │ │ │ └── AvgleService.kt │ │ │ └── DataBaseManager.kt │ │ │ ├── ui │ │ │ ├── base │ │ │ │ ├── interfaces │ │ │ │ │ ├── OnClickable.kt │ │ │ │ │ ├── LoadMoreable.kt │ │ │ │ │ ├── Refreshable.kt │ │ │ │ │ ├── UiRefreshable.kt │ │ │ │ │ ├── PlainConsumer.kt │ │ │ │ │ ├── PlainPagingConsumer.kt │ │ │ │ │ └── PlainEntitiesPagingConsumer.kt │ │ │ │ ├── adapter │ │ │ │ │ ├── ItemViewModel.kt │ │ │ │ │ ├── BaseViewHolder.kt │ │ │ │ │ ├── BaseItemSimpleViewHolder.kt │ │ │ │ │ ├── BaseItemPagerAdapter.kt │ │ │ │ │ ├── BaseItemViewHolder.kt │ │ │ │ │ ├── BaseSimpleAdapter.kt │ │ │ │ │ └── BaseItemSimpleAdapter.kt │ │ │ │ ├── viewmodel │ │ │ │ │ ├── BasePagingViewModel.kt │ │ │ │ │ └── BaseListDataViewModel.kt │ │ │ │ └── activity │ │ │ │ │ └── BaseSingleFragmentActivity.kt │ │ │ ├── features │ │ │ │ ├── splash │ │ │ │ │ ├── SplashModule.kt │ │ │ │ │ ├── SplashActivity.kt │ │ │ │ │ └── SplashViewModel.kt │ │ │ │ ├── setting │ │ │ │ │ ├── SettingModule.kt │ │ │ │ │ ├── SettingActivity.kt │ │ │ │ │ ├── SettingViewModel.kt │ │ │ │ │ └── SettingAdapter.kt │ │ │ │ ├── avg │ │ │ │ │ ├── detail │ │ │ │ │ │ ├── DetailModule.kt │ │ │ │ │ │ └── DetailActivity.kt │ │ │ │ │ ├── main │ │ │ │ │ │ ├── AvgActivityModule.kt │ │ │ │ │ │ ├── home │ │ │ │ │ │ │ ├── HomeFragmentModule.kt │ │ │ │ │ │ │ ├── adapter │ │ │ │ │ │ │ │ └── inside │ │ │ │ │ │ │ │ │ ├── BannerImagesModule.kt │ │ │ │ │ │ │ │ │ ├── ImageBannerAdapter.kt │ │ │ │ │ │ │ │ │ └── BannerImagesFragment.kt │ │ │ │ │ │ │ ├── HomeViewModel.kt │ │ │ │ │ │ │ └── HomeFragment.kt │ │ │ │ │ │ ├── video │ │ │ │ │ │ │ ├── VideoFragmentModule.kt │ │ │ │ │ │ │ ├── VideoFragment.kt │ │ │ │ │ │ │ └── VideoAdapter.kt │ │ │ │ │ │ ├── collection │ │ │ │ │ │ │ ├── CollectionModule.kt │ │ │ │ │ │ │ ├── CollectionFragment.kt │ │ │ │ │ │ │ ├── CollectionViewModel.kt │ │ │ │ │ │ │ └── CollectionsAdapter.kt │ │ │ │ │ │ └── AvgActivity.kt │ │ │ │ │ └── search │ │ │ │ │ │ ├── local │ │ │ │ │ │ ├── SearchModule.kt │ │ │ │ │ │ ├── SearchActivity.kt │ │ │ │ │ │ └── SearchViewModel.kt │ │ │ │ │ │ └── paging │ │ │ │ │ │ ├── SearchPagedModule.kt │ │ │ │ │ │ ├── suggestion │ │ │ │ │ │ └── SearchSuggestionsAdapter.kt │ │ │ │ │ │ └── SearchPagedAdapter.kt │ │ │ │ ├── comicavg │ │ │ │ │ ├── ComicAvgModule.kt │ │ │ │ │ ├── portal │ │ │ │ │ │ ├── PortalModule.kt │ │ │ │ │ │ └── PortalAdapter.kt │ │ │ │ │ ├── ComicAvgViewModel.kt │ │ │ │ │ └── ComicAvgActivity.kt │ │ │ │ └── comic │ │ │ │ │ ├── detail │ │ │ │ │ ├── ImageDetailModule.kt │ │ │ │ │ ├── ImageDetailActivity.kt │ │ │ │ │ └── ImageDetailViewModel.kt │ │ │ │ │ ├── testactivity │ │ │ │ │ ├── ComicActivityModule.kt │ │ │ │ │ ├── ComicActivity.kt │ │ │ │ │ ├── ComicViewModel.kt │ │ │ │ │ └── ComicAdapter.kt │ │ │ │ │ ├── testfragment │ │ │ │ │ ├── ComicFragmentModule.kt │ │ │ │ │ ├── ComicSingleActivityModule.kt │ │ │ │ │ ├── ComicSingleActivity.kt │ │ │ │ │ ├── ComicFragment.kt │ │ │ │ │ └── ComicSingleViewModel.kt │ │ │ │ │ └── testpaging │ │ │ │ │ ├── ComicPagingActivityModule.kt │ │ │ │ │ ├── ComicPagingActivity.kt │ │ │ │ │ └── ComicPagingViewModel.kt │ │ │ ├── widget │ │ │ │ ├── recycleview │ │ │ │ │ ├── CONST_SNAP.java │ │ │ │ │ ├── HorizontalSpaceItemDecoration.java │ │ │ │ │ └── VerticalSpaceItemDecoration.java │ │ │ │ └── MyRecycleView.java │ │ │ └── observableUi │ │ │ │ ├── ConnectionObservable.kt │ │ │ │ └── StateObservable.kt │ │ │ ├── di │ │ │ ├── qualifier │ │ │ │ ├── ActivityContext.kt │ │ │ │ ├── OkHttpAuth.kt │ │ │ │ ├── ApplicationContext.kt │ │ │ │ ├── ChildFragmentManager.kt │ │ │ │ ├── OkHttpNoAuth.kt │ │ │ │ ├── ActivityFragmentManager.kt │ │ │ │ └── ViewModelKey.kt │ │ │ ├── module │ │ │ │ ├── RepositoryModule.kt │ │ │ │ ├── DataModule.kt │ │ │ │ ├── AppModule.kt │ │ │ │ ├── BaseActivityModule.kt │ │ │ │ └── NetworkModule.kt │ │ │ └── component │ │ │ │ └── AppComponent.kt │ │ │ ├── receiver │ │ │ └── NetworkReceiver.kt │ │ │ ├── utils │ │ │ ├── NetworkUtils.kt │ │ │ ├── rx │ │ │ │ └── rxlifecycle │ │ │ │ │ ├── Preconditions.java │ │ │ │ │ └── OutsideLifecycleException.java │ │ │ ├── OptionSharedPreferenceLiveData.kt │ │ │ ├── SafeMutableLiveData.kt │ │ │ ├── SingletonHolder.kt │ │ │ ├── AutoClearedValue.kt │ │ │ ├── CustomImageLoadTarget.kt │ │ │ ├── BaseSharedPreferenceLiveData.kt │ │ │ └── ImageFetcherSingleSubscribe.kt │ │ │ ├── Constants.kt │ │ │ └── MyApplication.kt │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── lyhoangvinh │ │ │ └── simple │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── lyhoangvinh │ │ └── simple │ │ └── ExampleInstrumentedTest.kt └── proguard-rules.pro ├── settings.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .idea ├── codeStyles │ └── codeStyleConfig.xml ├── vcs.xml ├── runConfigurations.xml ├── libraries │ └── Gradle__javax_annotation_jsr250_api_1_0_jar.xml └── jarRepositories.xml ├── CONTRIBUTING.md └── gradle.properties /.gradle/vcs-1/gc.properties: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/kotlin_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/drawable-hdpi/kotlin_logo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/kotlin_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/drawable-mdpi/kotlin_logo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/kotlin_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/drawable-xhdpi/kotlin_logo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/kotlin_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/drawable-xxhdpi/kotlin_logo.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/entities/EntinyDiff.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.entities 2 | 3 | data class EntinyDiff( 4 | var data: T 5 | ) -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/kotlin_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/drawable-xxxhdpi/kotlin_logo.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/entities/Entities.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.entities 2 | 3 | interface Entities { 4 | fun listData() : List 5 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/base/interfaces/OnClickable.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.base.interfaces 2 | 3 | interface OnClickable { 4 | fun accept() 5 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/poster_show_not_available.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/drawable/poster_show_not_available.png -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/entities/Connection.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.entities 2 | 3 | 4 | class Connection(val type: Int, val isConnected: Boolean) -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/base/adapter/ItemViewModel.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.base.adapter 2 | 3 | interface ItemViewModel { 4 | val idViewModel: String? 5 | } -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/entities/VisibilityView.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.entities 2 | 3 | data class VisibilityView( 4 | var isVisible: Boolean = false 5 | ) -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_placeholder_rectangle_200px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/drawable-hdpi/ic_placeholder_rectangle_200px.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_placeholder_rectangle_200px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/drawable-mdpi/ic_placeholder_rectangle_200px.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_placeholder_rectangle_200px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/drawable-xhdpi/ic_placeholder_rectangle_200px.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_placeholder_rectangle_200px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/drawable-xxhdpi/ic_placeholder_rectangle_200px.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_placeholder_rectangle_200px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyhoangvinh/kotlin-mvvm-architecture/HEAD/app/src/main/res/drawable-xxxhdpi/ic_placeholder_rectangle_200px.png -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/entities/DataEmpty.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.entities 2 | 3 | data class DataEmpty( 4 | var isEmpty: Boolean, 5 | var message: String 6 | ) 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/base/interfaces/LoadMoreable.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.base.interfaces 2 | 3 | interface LoadMoreable { 4 | fun loadMore() 5 | fun canLoadMore(): Boolean 6 | } 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/response/ResponseBiZip.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.response 2 | 3 | data class ResponseBiZip( 4 | var t1: T1? = null, 5 | 6 | var t2: T2 ?= null 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/entities/BitmapWithQuality.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.entities 2 | 3 | import android.graphics.Bitmap 4 | 5 | data class BitmapWithQuality(val bitmap: Bitmap, val quality: String) -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/entities/OptionEntity.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.entities 2 | 3 | data class OptionEntity( 4 | val index: Int, 5 | var isCheck: Boolean? = false, 6 | val name: String 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/base/interfaces/Refreshable.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.base.interfaces 2 | 3 | /** 4 | * indicate refreshable objects 5 | */ 6 | 7 | interface Refreshable { 8 | fun refresh() 9 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/response/ResponseTriper.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.response 2 | 3 | data class ResponseTriper( 4 | var t1: T1? = null, 5 | 6 | var t2: T2? = null, 7 | 8 | var t3: T3? = null 9 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/itemviewmodel/SearchItem.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.itemviewmodel 2 | 3 | import com.lyhoangvinh.simple.ui.base.adapter.ItemViewModel 4 | 5 | class SearchItem(override val idViewModel: String?) : ItemViewModel -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_corner_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_empty_corner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/tags_blue_rounded_corners.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/itemviewmodel/DividerItem.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.itemviewmodel 2 | 3 | import com.lyhoangvinh.simple.ui.base.adapter.ItemViewModel 4 | 5 | data class DividerItem(override val idViewModel: String?) : ItemViewModel -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/base/interfaces/UiRefreshable.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.base.interfaces 2 | 3 | interface UiRefreshable : Refreshable { 4 | fun doneRefresh() 5 | fun refreshWithUi() 6 | fun refreshWithUi(delay: Long) 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/itemviewmodel/TitleSeeAllItem.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.itemviewmodel 2 | 3 | import com.lyhoangvinh.simple.ui.base.adapter.ItemViewModel 4 | 5 | data class TitleSeeAllItem(override val idViewModel: String?):ItemViewModel -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_corner_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/response/ResponseFourZip.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.response 2 | 3 | data class ResponseFourZip( 4 | var t1: T1?, 5 | 6 | var t2: T2?, 7 | 8 | var t3: T3?, 9 | 10 | var t4: T4? 11 | ) -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_red_status.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/splash/SplashModule.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.splash 2 | 3 | import com.lyhoangvinh.simple.di.module.BaseActivityModule 4 | import dagger.Module 5 | 6 | @Module 7 | class SplashModule : BaseActivityModule() -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Jul 13 11:05:03 ICT 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/setting/SettingModule.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.setting 2 | 3 | import com.lyhoangvinh.simple.di.module.BaseActivityModule 4 | import dagger.Module 5 | 6 | @Module 7 | class SettingModule : BaseActivityModule() -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/avg/detail/DetailModule.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.avg.detail 2 | 3 | import com.lyhoangvinh.simple.di.module.BaseActivityModule 4 | import dagger.Module 5 | 6 | @Module 7 | class DetailModule : BaseActivityModule() -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/avg/main/AvgActivityModule.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.avg.main 2 | 3 | import com.lyhoangvinh.simple.di.module.BaseActivityModule 4 | import dagger.Module 5 | 6 | @Module 7 | class AvgActivityModule : BaseActivityModule() -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/comicavg/ComicAvgModule.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.comicavg 2 | 3 | import com.lyhoangvinh.simple.di.module.BaseActivityModule 4 | import dagger.Module 5 | 6 | @Module 7 | class ComicAvgModule : BaseActivityModule() -------------------------------------------------------------------------------- /app/src/main/res/layout/progress_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/layout_animation_fall_down.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_corner_gray_thin.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/avg/search/local/SearchModule.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.avg.search.local 2 | 3 | import com.lyhoangvinh.simple.di.module.BaseActivityModule 4 | import dagger.Module 5 | 6 | @Module 7 | class SearchModule : BaseActivityModule() -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/comicavg/portal/PortalModule.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.comicavg.portal 2 | 3 | import com.lyhoangvinh.simple.di.module.BaseFragmentModule 4 | import dagger.Module 5 | 6 | @Module 7 | class PortalModule : BaseFragmentModule() -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/base/interfaces/PlainConsumer.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.base.interfaces 2 | 3 | import io.reactivex.annotations.NonNull 4 | import io.reactivex.functions.Consumer 5 | 6 | interface PlainConsumer : Consumer { 7 | override fun accept(@NonNull t: T) 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/avg/main/home/HomeFragmentModule.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.avg.main.home 2 | 3 | import com.lyhoangvinh.simple.di.module.BaseFragmentModule 4 | import dagger.Module 5 | 6 | @Module 7 | class HomeFragmentModule : BaseFragmentModule() -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/comic/detail/ImageDetailModule.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.comic.detail 2 | 3 | import com.lyhoangvinh.simple.di.module.BaseActivityModule 4 | import dagger.Module 5 | 6 | @Module 7 | class ImageDetailModule : BaseActivityModule() -------------------------------------------------------------------------------- /app/src/main/res/layout/view_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/avg/main/video/VideoFragmentModule.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.avg.main.video 2 | 3 | import com.lyhoangvinh.simple.di.module.BaseFragmentModule 4 | import dagger.Module 5 | 6 | @Module 7 | class VideoFragmentModule : BaseFragmentModule() -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/avg/search/paging/SearchPagedModule.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.avg.search.paging 2 | 3 | import com.lyhoangvinh.simple.di.module.BaseActivityModule 4 | import dagger.Module 5 | 6 | @Module 7 | class SearchPagedModule : BaseActivityModule() -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/comic/testactivity/ComicActivityModule.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.comic.testactivity 2 | 3 | import com.lyhoangvinh.simple.di.module.BaseActivityModule 4 | import dagger.Module 5 | 6 | @Module 7 | class ComicActivityModule : BaseActivityModule() -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/comic/testfragment/ComicFragmentModule.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.comic.testfragment 2 | 3 | import com.lyhoangvinh.simple.di.module.BaseFragmentModule 4 | import dagger.Module 5 | 6 | @Module 7 | class ComicFragmentModule : BaseFragmentModule() -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/avg/main/collection/CollectionModule.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.avg.main.collection 2 | 3 | import com.lyhoangvinh.simple.di.module.BaseFragmentModule 4 | import dagger.Module 5 | 6 | @Module 7 | class CollectionModule : BaseFragmentModule() -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/widget/recycleview/CONST_SNAP.java: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.widget.recycleview; 2 | 3 | public class CONST_SNAP { 4 | // public static final int SCROLL_IDLE = 1; 5 | // public static final int SCROLL_NEXT = 2; 6 | // public static final int SCROLL_PREVIOUS = 3; 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_corner_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/di/qualifier/ActivityContext.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.di.qualifier 2 | 3 | import javax.inject.Qualifier 4 | 5 | /** 6 | * Activity context qualifier 7 | */ 8 | 9 | @Qualifier 10 | @kotlin.annotation.Retention(AnnotationRetention.RUNTIME) 11 | annotation class ActivityContext -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/di/qualifier/OkHttpAuth.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.di.qualifier 2 | 3 | import javax.inject.Qualifier 4 | 5 | 6 | /** 7 | * Authorization header [okhttp3.OkHttpClient] 8 | */ 9 | @Qualifier 10 | @kotlin.annotation.Retention(AnnotationRetention.RUNTIME) 11 | annotation class OkHttpAuth -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/comic/testpaging/ComicPagingActivityModule.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.comic.testpaging 2 | 3 | import com.lyhoangvinh.simple.di.module.BaseActivityModule 4 | import dagger.Module 5 | 6 | @Module 7 | class ComicPagingActivityModule : BaseActivityModule() -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/comic/testfragment/ComicSingleActivityModule.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.comic.testfragment 2 | 3 | import com.lyhoangvinh.simple.di.module.BaseActivityModule 4 | import dagger.Module 5 | 6 | @Module 7 | class ComicSingleActivityModule : BaseActivityModule() -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/entities/comic/Comics.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.entities.comic 2 | 3 | import androidx.room.Entity 4 | import androidx.room.PrimaryKey 5 | 6 | @Entity 7 | data class Comics( 8 | @PrimaryKey(autoGenerate = true) 9 | var id: Long, 10 | 11 | var publisher: String? = null 12 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/source/base/PlainResponseBiConsumer.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.source.base 2 | 3 | import androidx.annotation.NonNull 4 | import com.lyhoangvinh.simple.data.response.ResponseBiZip 5 | 6 | 7 | interface PlainResponseBiConsumer { 8 | fun accept(@NonNull dto: ResponseBiZip) 9 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/di/qualifier/ApplicationContext.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.di.qualifier 2 | 3 | import javax.inject.Qualifier 4 | 5 | 6 | /** 7 | * Application context qualifier 8 | */ 9 | 10 | @Qualifier 11 | @kotlin.annotation.Retention(AnnotationRetention.RUNTIME) 12 | annotation class ApplicationContext -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/di/qualifier/ChildFragmentManager.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.di.qualifier 2 | 3 | import javax.inject.Qualifier 4 | 5 | /** 6 | * Child fragment manager qualifier 7 | */ 8 | 9 | @Qualifier 10 | @kotlin.annotation.Retention(AnnotationRetention.RUNTIME) 11 | annotation class ChildFragmentManager -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/avg/main/home/adapter/inside/BannerImagesModule.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.avg.main.home.adapter.inside 2 | 3 | import com.lyhoangvinh.simple.di.module.BaseFragmentModule 4 | import dagger.Module 5 | 6 | @Module 7 | class BannerImagesModule : BaseFragmentModule() -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/itemviewmodel/SearchDataItem.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.itemviewmodel 2 | 3 | import com.lyhoangvinh.simple.data.entities.avgle.Video 4 | import com.lyhoangvinh.simple.ui.base.adapter.ItemViewModel 5 | 6 | data class SearchDataItem(val video: Video, override val idViewModel: String?) : ItemViewModel -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/di/qualifier/OkHttpNoAuth.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.di.qualifier 2 | 3 | import javax.inject.Qualifier 4 | 5 | /** 6 | * NO Authorization header [okhttp3.OkHttpClient] 7 | */ 8 | 9 | @kotlin.annotation.Retention(AnnotationRetention.RUNTIME) 10 | @Qualifier 11 | annotation class OkHttpNoAuth 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/linear_gradient.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/di/qualifier/ActivityFragmentManager.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.di.qualifier 2 | 3 | import javax.inject.Qualifier 4 | 5 | /** 6 | * Activity fragment manager qualifier 7 | */ 8 | 9 | @Qualifier 10 | @kotlin.annotation.Retention(AnnotationRetention.RUNTIME) 11 | annotation class ActivityFragmentManager -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_oval.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 9 | 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/itemviewmodel/SearchHistoryItem.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.itemviewmodel 2 | 3 | import com.lyhoangvinh.simple.data.entities.avgle.SearchHistory 4 | import com.lyhoangvinh.simple.ui.base.adapter.ItemViewModel 5 | 6 | data class SearchHistoryItem(var data: SearchHistory, override val idViewModel: String?) :ItemViewModel -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/source/base/PlainResponseFourConsumer.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.source.base 2 | 3 | import androidx.annotation.NonNull 4 | import com.lyhoangvinh.simple.data.response.ResponseFourZip 5 | 6 | 7 | interface PlainResponseFourConsumer { 8 | fun accept(@NonNull dto: ResponseFourZip) 9 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/ui/features/comic/testfragment/ComicSingleActivity.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.ui.features.comic.testfragment 2 | 3 | import com.lyhoangvinh.simple.ui.base.activity.BaseSingleFragmentActivity 4 | 5 | 6 | class ComicSingleActivity : BaseSingleFragmentActivity() { 7 | override fun createFragment() = ComicFragment() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/itemviewmodel/CollectionBannerItem.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.itemviewmodel 2 | 3 | import com.lyhoangvinh.simple.data.entities.avgle.Collection 4 | import com.lyhoangvinh.simple.ui.base.adapter.ItemViewModel 5 | 6 | data class CollectionBannerItem(var collections: List?, override val idViewModel: String?):ItemViewModel -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/receiver/NetworkReceiver.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.receiver 2 | 3 | import android.content.BroadcastReceiver 4 | import android.content.Context 5 | import android.content.Intent 6 | 7 | open class NetworkReceiver : BroadcastReceiver() { 8 | 9 | override fun onReceive(context: Context?, intent: Intent?) { 10 | 11 | } 12 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lyhoangvinh/simple/data/itemviewmodel/VideoItem.kt: -------------------------------------------------------------------------------- 1 | package com.lyhoangvinh.simple.data.itemviewmodel 2 | 3 | import androidx.paging.PagedList 4 | import com.lyhoangvinh.simple.data.entities.avgle.Video 5 | import com.lyhoangvinh.simple.ui.base.adapter.ItemViewModel 6 | 7 | data class VideoItem(var videos: PagedList