├── lib_base ├── consumer-rules.pro ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── lib_base │ │ │ ├── ktx │ │ │ └── StringKtx.kt │ │ │ └── arch │ │ │ ├── ViewModel.kt │ │ │ ├── Configs.kt │ │ │ ├── InvokeStatus.kt │ │ │ └── Interactors.kt │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── lib_base │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── rock │ │ └── lib_base │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro ├── build.gradle └── .gitignore ├── ui-home ├── consumer-rules.pro ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── ui_home │ │ │ ├── HomeAction.kt │ │ │ ├── route │ │ │ └── Screens.kt │ │ │ ├── HomeViewModel.kt │ │ │ └── UiHome.kt │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── ui_home │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── rock │ │ └── ui_home │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro ├── .gitignore └── build.gradle ├── ui-square ├── consumer-rules.pro ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── ui_square │ │ │ ├── UiSquare.kt │ │ │ └── route │ │ │ └── Screens.kt │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── ui_square │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── rock │ │ └── ui_square │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro ├── build.gradle └── .gitignore ├── ui-system ├── consumer-rules.pro ├── src │ ├── main │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── ui_system │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── rock │ │ └── ui_system │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro ├── build.gradle └── .gitignore ├── wan-data ├── consumer-rules.pro ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── wan_data │ │ │ ├── entity │ │ │ ├── PagedData.kt │ │ │ ├── ArticleRemoteKey.kt │ │ │ ├── Banner.kt │ │ │ ├── User.kt │ │ │ └── Article.kt │ │ │ ├── local │ │ │ ├── PreferenceStore.kt │ │ │ ├── dao │ │ │ │ ├── UserDao.kt │ │ │ │ ├── ArticleRemoteKeyDao.kt │ │ │ │ ├── BaseDao.kt │ │ │ │ ├── ArticleDao.kt │ │ │ │ └── BannerDao.kt │ │ │ ├── converters │ │ │ │ ├── BaseTypeConvert.kt │ │ │ │ ├── IntMutableListConverter.kt │ │ │ │ └── TagListConverter.kt │ │ │ ├── datastore │ │ │ │ └── TopicPDS.kt │ │ │ └── WanAndroidDB.kt │ │ │ ├── remote │ │ │ ├── NetResponse.kt │ │ │ ├── intercepter │ │ │ │ └── LogInterceptor.kt │ │ │ ├── MultiBaseUrlCallFactory.kt │ │ │ ├── WanAndroidService.kt │ │ │ └── RetrofitClient.kt │ │ │ └── di │ │ │ ├── DataStoreModule.kt │ │ │ ├── DatabaseModule.kt │ │ │ ├── DaoModule.kt │ │ │ └── NetServiceModule.kt │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── wan_data │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── rock │ │ └── wan_data │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro ├── .gitignore └── build.gradle ├── lib_compose ├── consumer-rules.pro ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── lib_compose │ │ │ ├── widget │ │ │ ├── LazyList.kt │ │ │ ├── PlaceHolder.kt │ │ │ ├── collapsable │ │ │ │ ├── CollapsableLayout.kt │ │ │ │ └── CoverLayout.kt │ │ │ ├── RefreshLazyColumn.kt │ │ │ ├── WanScaffolds.kt │ │ │ └── ArticleCard.kt │ │ │ ├── arch │ │ │ ├── Action.kt │ │ │ ├── ViewModel.kt │ │ │ └── ComposeState.kt │ │ │ ├── theme │ │ │ ├── Spacing.kt │ │ │ ├── Type.kt │ │ │ ├── Color.kt │ │ │ └── WindowSize.kt │ │ │ └── navigation │ │ │ ├── NavGraphKtx.kt │ │ │ └── Screen.kt │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── lib_compose │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── rock │ │ └── lib_compose │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro ├── .gitignore └── build.gradle ├── ui-discovery ├── consumer-rules.pro ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── ui_discovery │ │ │ ├── DiscoveryAction.kt │ │ │ ├── route │ │ │ └── Screens.kt │ │ │ ├── DiscoveryViewModel.kt │ │ │ ├── UiDiscovery.kt │ │ │ └── UiDiscoveryState.kt │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── ui_discovery │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── rock │ │ └── ui_discovery │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro ├── .gitignore └── build.gradle ├── ui-profile ├── consumer-rules.pro ├── src │ ├── main │ │ ├── res │ │ │ └── drawable-xxhdpi │ │ │ │ ├── ic_profile.png │ │ │ │ └── ic_profile_unlogin.png │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── ui_profile │ │ │ ├── ProfileAction.kt │ │ │ ├── login │ │ │ ├── LoginAction.kt │ │ │ └── LoginViewModel.kt │ │ │ ├── ProfileViewModel.kt │ │ │ ├── route │ │ │ └── Screens.kt │ │ │ └── UiProfileState.kt │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── ui_profile │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── rock │ │ └── ui_profile │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro ├── .gitignore └── build.gradle ├── ui-project ├── consumer-rules.pro ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── ui_project │ │ │ ├── UiProject.kt │ │ │ └── route │ │ │ └── Screens.kt │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── ui_project │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── rock │ │ └── ui_project │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro ├── build.gradle └── .gitignore ├── wan-domain ├── consumer-rules.pro ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── wan_domain │ │ │ ├── interactor │ │ │ ├── LogoutInteractor.kt │ │ │ ├── BannerInteractor.kt │ │ │ ├── TopicInteractor.kt │ │ │ ├── LoginInteractor.kt │ │ │ ├── WendaPagingInteractor.kt │ │ │ ├── SquarePagingInteractor.kt │ │ │ └── ArticlePagingInteractor.kt │ │ │ └── observer │ │ │ ├── UserObserver.kt │ │ │ ├── TopicObserver.kt │ │ │ └── BannerObserver.kt │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── wan_domain │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── rock │ │ └── wan_domain │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro ├── build.gradle └── .gitignore ├── wan-repositroy ├── consumer-rules.pro ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── wan_repositroy │ │ │ ├── datasource │ │ │ ├── BannerDataSource.kt │ │ │ ├── ArticleDataSource.kt │ │ │ ├── UserDataSource.kt │ │ │ └── ArticlePagingSource.kt │ │ │ ├── datastore │ │ │ ├── BannerDataStore.kt │ │ │ ├── UserDataStore.kt │ │ │ └── ArticleDataStore.kt │ │ │ ├── BannerRepository.kt │ │ │ ├── UserRepository.kt │ │ │ └── ArticleRepository.kt │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── wan_repositroy │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── rock │ │ └── wan_repositroy │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro ├── build.gradle └── .gitignore ├── .idea ├── .gitignore ├── compiler.xml ├── kotlinc.xml ├── vcs.xml ├── misc.xml └── inspectionProfiles │ └── Project_Default.xml ├── app ├── src │ ├── main │ │ ├── res │ │ │ ├── values │ │ │ │ ├── strings.xml │ │ │ │ ├── themes.xml │ │ │ │ └── colors.xml │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ └── xml │ │ │ │ ├── backup_rules.xml │ │ │ │ └── data_extraction_rules.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── rock │ │ │ │ └── wanandroid │ │ │ │ ├── WanApplication.kt │ │ │ │ ├── ui │ │ │ │ ├── PageNotFoundUi.kt │ │ │ │ ├── WanNavHost.kt │ │ │ │ ├── WanApp.kt │ │ │ │ └── WanAppState.kt │ │ │ │ └── MainActivity.kt │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── rock │ │ │ └── wanandroid │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── rock │ │ └── wanandroid │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro ├── .gitignore └── build.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── settings.gradle ├── gradle.properties ├── .gitignore └── gradlew.bat /lib_base/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui-home/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui-square/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui-system/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /wan-data/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib_compose/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui-discovery/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui-profile/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui-project/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /wan-domain/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /wan-repositroy/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 玩安卓 3 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/llwdslal/WanAndroid/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/llwdslal/WanAndroid/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/llwdslal/WanAndroid/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/llwdslal/WanAndroid/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/llwdslal/WanAndroid/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/llwdslal/WanAndroid/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ui-profile/src/main/res/drawable-xxhdpi/ic_profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/llwdslal/WanAndroid/HEAD/ui-profile/src/main/res/drawable-xxhdpi/ic_profile.png -------------------------------------------------------------------------------- /ui-profile/src/main/res/drawable-xxhdpi/ic_profile_unlogin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/llwdslal/WanAndroid/HEAD/ui-profile/src/main/res/drawable-xxhdpi/ic_profile_unlogin.png -------------------------------------------------------------------------------- /app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |