├── .gitignore ├── Inject ├── daggersample │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── daggersample │ │ │ ├── DaggerApp.kt │ │ │ ├── MainActivity.kt │ │ │ ├── dagger │ │ │ ├── AppComponent.kt │ │ │ ├── AppModule.kt │ │ │ └── scope │ │ │ │ └── ActivityScope.kt │ │ │ ├── data │ │ │ └── User.kt │ │ │ └── view │ │ │ └── UserView.kt │ │ └── res │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── values-night │ │ └── themes.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml ├── hiltsample │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── android │ │ │ └── hsicen │ │ │ └── hiltsample │ │ │ ├── HiltApp.kt │ │ │ ├── MainActivity.kt │ │ │ ├── builder │ │ │ └── Book.kt │ │ │ ├── data │ │ │ └── User.kt │ │ │ ├── factory │ │ │ └── UserFactory.kt │ │ │ ├── hilt │ │ │ ├── AppModule.kt │ │ │ ├── HiltModule.kt │ │ │ └── HiltModule1.kt │ │ │ └── view │ │ │ └── UserView.kt │ │ └── res │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml └── koinsample │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── hsicen │ │ └── koinsample │ │ ├── KoinApp.kt │ │ ├── MainActivity.kt │ │ ├── data │ │ └── User.kt │ │ └── view │ │ └── UserView.kt │ └── res │ ├── drawable │ └── ic_launcher_background.xml │ ├── layout │ └── activity_main.xml │ ├── mipmap-xhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── values-night │ └── themes.xml │ └── values │ ├── colors.xml │ ├── strings.xml │ └── themes.xml ├── Jetpack ├── appstartup │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── appstartup │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── appstartup │ │ │ │ ├── App.kt │ │ │ │ ├── AppContext.kt │ │ │ │ ├── InitializationA.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── ProviderA.kt │ │ │ │ ├── ProviderB.kt │ │ │ │ ├── ProviderC.kt │ │ │ │ └── ProviderD.kt │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── 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 │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── values-night │ │ │ └── themes.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── appstartup │ │ └── ExampleUnitTest.kt ├── coroutine │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── coroutine │ │ │ ├── FlowViewModel.kt │ │ │ ├── LineMain.kt │ │ │ ├── MainActivity.kt │ │ │ ├── MainViewModel.kt │ │ │ ├── android │ │ │ └── LoginRepository.kt │ │ │ ├── base.kt │ │ │ ├── basic │ │ │ ├── ZipRequest.kt │ │ │ ├── async.kt │ │ │ ├── cancel.kt │ │ │ ├── coroutinescope.kt │ │ │ ├── delay.kt │ │ │ ├── exception.kt │ │ │ ├── flows.kt │ │ │ ├── globalscope.kt │ │ │ ├── job.kt │ │ │ ├── launch.kt │ │ │ ├── runblocking.kt │ │ │ ├── scope.kt │ │ │ ├── sequential.kt │ │ │ ├── supervisor.kt │ │ │ └── withcontext.kt │ │ │ ├── exception.kt │ │ │ ├── lite.kt │ │ │ ├── practice.kt │ │ │ └── stateflow.kt │ │ └── res │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── values-night │ │ └── themes.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml ├── datastore │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── datastore │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── datastore │ │ │ │ ├── DataStoreModel.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── SpDataStore.kt │ │ │ │ └── SpStoreInitializer.kt │ │ ├── proto │ │ │ └── settings.proto │ │ └── res │ │ │ ├── drawable │ │ │ ├── ic_launcher_background.xml │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.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 │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── datastore │ │ └── ExampleUnitTest.kt ├── lifecycle │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── lifecycle │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── lifecycle │ │ │ │ ├── ActivityObserver.kt │ │ │ │ ├── App.kt │ │ │ │ ├── AppObserver.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ └── MyLifecycleOwner.kt │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── 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 │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── values-night │ │ │ └── themes.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── lifecycle │ │ └── ExampleUnitTest.kt ├── livedata │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── livedata │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── livedata │ │ │ │ ├── CircleView.kt │ │ │ │ ├── LiveViewModel.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ └── User.kt │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── 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 │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── values-night │ │ │ └── themes.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── livedata │ │ └── ExampleUnitTest.kt ├── roomsample │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── roomsample │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── roomsample │ │ │ │ ├── AppDatabase.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── Student.kt │ │ │ │ ├── StudentDao.kt │ │ │ │ ├── User.kt │ │ │ │ ├── UserDao.kt │ │ │ │ └── UserViewModel.kt │ │ └── res │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── roomsample │ │ └── ExampleUnitTest.kt ├── viewbinding │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── viewbinding │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── viewbinding │ │ │ │ ├── BindingActivity.kt │ │ │ │ ├── BindingFragment.kt │ │ │ │ ├── CallFragment.kt │ │ │ │ ├── Extension.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ └── PhoneActivity.kt │ │ └── res │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ ├── activity_main.xml │ │ │ ├── call_fragment.xml │ │ │ └── phone_activity.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── values-night │ │ │ └── themes.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── viewbinding │ │ └── ExampleUnitTest.kt ├── viewmodel │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── viewmodel │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── viewmodel │ │ │ │ ├── CountAndroidModel.kt │ │ │ │ ├── CountViewModel.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ └── SecondActivity.kt │ │ └── res │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ ├── activity_main.xml │ │ │ └── activity_second.xml │ │ │ ├── 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 │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── values-night │ │ │ └── themes.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── viewmodel │ │ └── ExampleUnitTest.kt └── workmanagersample │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── hsicen │ │ └── workmanagersample │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── workmanagersample │ │ │ └── MainActivity.kt │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── 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 │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── hsicen │ └── workmanagersample │ └── ExampleUnitTest.kt ├── README.md ├── build.gradle.kts ├── buildSrc ├── .gitignore ├── build.gradle.kts └── src │ └── main │ ├── kotlin │ ├── Dependencies.kt │ ├── com │ │ └── hsicen │ │ │ └── plugin │ │ │ ├── BuildScriptPlugin.kt │ │ │ └── HencoderPlugin.kt │ ├── comm │ │ ├── app-compose-module.gradle.kts │ │ ├── app-module.gradle.kts │ │ ├── kotlin-lib.gradle.kts │ │ ├── lib-compose-module.gradle.kts │ │ └── lib-module.gradle.kts │ └── extensions │ │ └── DependencyHandlerExtension.kt │ └── resources │ └── META-INF │ └── gradle-plugins │ └── Hencoder.properties ├── compose ├── 01_hellocompose │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── hellocompose │ │ │ ├── MainActivity.kt │ │ │ ├── WeViewModel.kt │ │ │ ├── data │ │ │ ├── Chat.kt │ │ │ └── User.kt │ │ │ └── ui │ │ │ ├── ChatListPage.kt │ │ │ ├── ChatPage.kt │ │ │ ├── ContactPage.kt │ │ │ ├── DiscoveryPage.kt │ │ │ ├── Home.kt │ │ │ ├── MePage.kt │ │ │ ├── WeBottomBar.kt │ │ │ ├── WeTopBar.kt │ │ │ └── theme │ │ │ ├── Color.kt │ │ │ ├── Shape.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── avatar_diuwuxian.xml │ │ ├── avatar_gaolaoshi.xml │ │ ├── avatar_rengwuxian.xml │ │ ├── ic_add.xml │ │ ├── ic_arrow_more.xml │ │ ├── ic_back.xml │ │ ├── ic_bg_newyear_left.xml │ │ ├── ic_bg_newyear_right.xml │ │ ├── ic_bg_newyear_top.xml │ │ ├── ic_cards.xml │ │ ├── ic_channels.xml │ │ ├── ic_chat_filled.xml │ │ ├── ic_chat_outlined.xml │ │ ├── ic_collections.xml │ │ ├── ic_contact_add.xml │ │ ├── ic_contact_chat.xml │ │ ├── ic_contact_group.xml │ │ ├── ic_contact_official.xml │ │ ├── ic_contact_tag.xml │ │ ├── ic_contacts_filled.xml │ │ ├── ic_contacts_outlined.xml │ │ ├── ic_discovery_filled.xml │ │ ├── ic_discovery_outlined.xml │ │ ├── ic_ilook.xml │ │ ├── ic_isearch.xml │ │ ├── ic_launcher_background.xml │ │ ├── ic_me_filled.xml │ │ ├── ic_me_outlined.xml │ │ ├── ic_moments.xml │ │ ├── ic_nearby.xml │ │ ├── ic_palette.xml │ │ ├── ic_pay.xml │ │ ├── ic_photos.xml │ │ ├── ic_qrcode.xml │ │ ├── ic_settings.xml │ │ ├── ic_stickers.xml │ │ └── ic_voice.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.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 │ │ ├── values-night │ │ └── themes.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml ├── 02_sample │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a02_sample │ │ │ ├── MainActivity.kt │ │ │ └── ui │ │ │ └── theme │ │ │ ├── Color.kt │ │ │ ├── Shape.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.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 │ │ ├── values-night │ │ └── themes.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml ├── 03_state │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── state │ │ │ ├── Chapter10.kt │ │ │ ├── Chapter11.kt │ │ │ ├── Chapter12.kt │ │ │ ├── Chapter13.kt │ │ │ ├── Chapter14.kt │ │ │ ├── Chapter15.kt │ │ │ ├── Chapter16.kt │ │ │ ├── Chapter17.kt │ │ │ ├── MainActivity.kt │ │ │ ├── StateViewModel.kt │ │ │ ├── User.kt │ │ │ └── ui │ │ │ └── theme │ │ │ ├── Color.kt │ │ │ ├── Shape.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ ├── kotlin │ │ └── com │ │ │ └── hsicen │ │ │ └── state │ │ │ └── Composable.kt │ │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.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 │ │ ├── values-night │ │ └── themes.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml ├── 04_animation │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a04_animation │ │ │ ├── Chapter18.kt │ │ │ ├── Chapter19.kt │ │ │ ├── Chapter20.kt │ │ │ ├── Chapter21.kt │ │ │ ├── Chapter22.kt │ │ │ ├── Chapter23.kt │ │ │ ├── Chapter24.kt │ │ │ ├── Chapter25.kt │ │ │ ├── Chapter26.kt │ │ │ ├── Chapter27.kt │ │ │ ├── Chapter28.kt │ │ │ ├── Chapter29.kt │ │ │ ├── Chapter30.kt │ │ │ ├── Chapter31.kt │ │ │ ├── Chapter32.kt │ │ │ ├── Chapter33.kt │ │ │ └── MainActivity.kt │ │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.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 │ │ ├── values-night │ │ └── themes.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml ├── 05_modifier │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a05_modifier │ │ │ ├── Chapter34.kt │ │ │ ├── Chapter35.kt │ │ │ ├── Chapter36.kt │ │ │ ├── Chapter37.kt │ │ │ ├── Chapter39.kt │ │ │ ├── Chapter42.kt │ │ │ ├── Chapter43.kt │ │ │ ├── Chapter46.kt │ │ │ ├── Chapter47.kt │ │ │ ├── Chapter48.kt │ │ │ ├── Chapter49.kt │ │ │ ├── Chapter50.kt │ │ │ ├── Chapter51.kt │ │ │ ├── Chapter52.kt │ │ │ ├── CustomLayout.kt │ │ │ └── MainActivity.kt │ │ └── res │ │ ├── drawable │ │ ├── ic_launcher_background.xml │ │ └── ic_launcher_foreground.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.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 │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml ├── 06_coroutine │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a06_coroutine │ │ │ ├── Chapter53.kt │ │ │ ├── Chapter54.kt │ │ │ ├── Chapter55.kt │ │ │ ├── Chapter56.kt │ │ │ ├── Chapter57.kt │ │ │ ├── Chapter58.kt │ │ │ ├── Chapter59.kt │ │ │ └── MainActivity.kt │ │ └── res │ │ ├── drawable │ │ ├── ic_launcher_background.xml │ │ └── ic_launcher_foreground.xml │ │ ├── mipmap-anydpi │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.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 │ │ ├── values-night │ │ └── themes.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml ├── 07_view │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ └── com │ │ │ └── hsicen │ │ │ └── a07_view │ │ │ ├── Chapter60.kt │ │ │ ├── Chapter61.kt │ │ │ ├── Chapter62.kt │ │ │ ├── Chapter63.kt │ │ │ ├── Chapter64.kt │ │ │ ├── Chapter65.kt │ │ │ ├── Chapter66.kt │ │ │ ├── Chapter67.kt │ │ │ ├── Chapter68.kt │ │ │ ├── MainActivity.kt │ │ │ └── ui │ │ │ └── theme │ │ │ ├── Color.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── res │ │ ├── drawable │ │ ├── hsicen.jpg │ │ ├── ic_launcher_background.xml │ │ └── ic_launcher_foreground.xml │ │ ├── mipmap-anydpi │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.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 │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml ├── 08_custom │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a08_custom │ │ │ ├── Chapter69.kt │ │ │ ├── Chapter70.kt │ │ │ ├── MainActivity.kt │ │ │ └── ui │ │ │ └── theme │ │ │ ├── Color.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.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 │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml ├── 09_theory │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a09_theory │ │ │ ├── MainActivity.kt │ │ │ └── ui │ │ │ └── theme │ │ │ ├── Color.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.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 │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml └── todo │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── hsicen │ │ └── todo │ │ ├── MainActivity.kt │ │ ├── data │ │ ├── DataCenter.kt │ │ └── TodoUiState.kt │ │ └── ui │ │ ├── AppBar.kt │ │ ├── Todos.kt │ │ ├── UserInput.kt │ │ └── theme │ │ ├── Color.kt │ │ ├── Shape.kt │ │ ├── Theme.kt │ │ └── Type.kt │ └── res │ ├── drawable-v24 │ └── ic_launcher_foreground.xml │ ├── drawable │ ├── ic_back.xml │ ├── ic_front.xml │ └── ic_launcher_background.xml │ ├── mipmap-anydpi-v26 │ ├── ic_launcher.xml │ └── ic_launcher_round.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 │ ├── values-night │ ├── colors.xml │ └── themes.xml │ └── values │ ├── colors.xml │ ├── strings.xml │ └── themes.xml ├── coroutine ├── 01_introduce │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a01_introduce │ │ │ ├── BasicViewModel.kt │ │ │ ├── Chapter00.kt │ │ │ ├── Chapter01.kt │ │ │ ├── Chapter02.kt │ │ │ ├── Chapter03.kt │ │ │ ├── Chapter04.kt │ │ │ ├── Chapter05.kt │ │ │ ├── Chapter06.kt │ │ │ ├── Chapter07.kt │ │ │ ├── Chapter08.kt │ │ │ ├── Chapter09.kt │ │ │ ├── Chapter10.kt │ │ │ ├── Chapter11.kt │ │ │ ├── Chapter12.kt │ │ │ ├── MainActivity.kt │ │ │ ├── comm │ │ │ ├── API.kt │ │ │ └── Common.kt │ │ │ └── theme │ │ │ ├── Color.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.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 │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml ├── 02_concurrency │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── a02_concurrency │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── a02_concurrency │ │ │ │ ├── Chapter13.kt │ │ │ │ ├── Chapter14.kt │ │ │ │ ├── Chapter15.kt │ │ │ │ ├── Chapter16.kt │ │ │ │ ├── Chapter17.kt │ │ │ │ ├── Chapter18.kt │ │ │ │ ├── Chapter19.kt │ │ │ │ ├── Chapter20.kt │ │ │ │ ├── Chapter21.kt │ │ │ │ ├── Chapter22.kt │ │ │ │ ├── Chapter23.kt │ │ │ │ ├── Chapter24.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ └── ui │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.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 │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a02_concurrency │ │ └── ExampleUnitTest.kt ├── 03_scope │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── a03_scope │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── a03_scope │ │ │ │ ├── Chapter25.kt │ │ │ │ ├── Chapter26.kt │ │ │ │ ├── Chapter27.kt │ │ │ │ ├── Chapter28.kt │ │ │ │ ├── Chapter29.kt │ │ │ │ ├── Chapter30.kt │ │ │ │ ├── Chapter31.kt │ │ │ │ ├── Chapter32.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ └── ui │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ └── res │ │ │ ├── drawable │ │ │ ├── ic_launcher_background.xml │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.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 │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a03_scope │ │ └── ExampleUnitTest.kt ├── 04_channelflow │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── a04_channelflow │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── a04_channelflow │ │ │ │ ├── Chapter33.kt │ │ │ │ ├── Chapter34.kt │ │ │ │ ├── Chapter35.kt │ │ │ │ ├── Chapter36.kt │ │ │ │ ├── Chapter37.kt │ │ │ │ ├── Chapter38.kt │ │ │ │ ├── Chapter39.kt │ │ │ │ ├── Chapter40.kt │ │ │ │ ├── Chapter41.kt │ │ │ │ ├── Chapter42.kt │ │ │ │ ├── Chapter43.kt │ │ │ │ ├── Chapter44.kt │ │ │ │ ├── Chapter45.kt │ │ │ │ ├── Chapter46.kt │ │ │ │ ├── Chapter47.kt │ │ │ │ ├── Chapter48.kt │ │ │ │ ├── Chapter49.kt │ │ │ │ ├── Chapter50.kt │ │ │ │ ├── Chapter51.kt │ │ │ │ ├── Chapter52.kt │ │ │ │ ├── Chapter53.kt │ │ │ │ ├── Chapter54.kt │ │ │ │ ├── Chapter55.kt │ │ │ │ ├── Chapter56.kt │ │ │ │ ├── Chapter57.kt │ │ │ │ ├── Chapter58.kt │ │ │ │ ├── Chapter59.kt │ │ │ │ ├── Chapter60.kt │ │ │ │ ├── Chapter61.kt │ │ │ │ ├── Chapter62.kt │ │ │ │ ├── Chapter63.kt │ │ │ │ ├── Chapter64.kt │ │ │ │ └── MainActivity.kt │ │ └── res │ │ │ ├── drawable │ │ │ ├── ic_launcher_background.xml │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── mipmap-anydpi │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.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 │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a04_channelflow │ │ └── ExampleUnitTest.kt └── 05_cooperate │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── hsicen │ │ └── a05_cooperate │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── kotlin │ │ └── com │ │ │ └── hsicen │ │ │ └── a05_cooperate │ │ │ ├── Chapter65.kt │ │ │ ├── Chapter66.kt │ │ │ ├── Chapter67.kt │ │ │ ├── Chapter68.kt │ │ │ └── MainActivity.kt │ └── res │ │ ├── drawable │ │ ├── ic_launcher_background.xml │ │ └── ic_launcher_foreground.xml │ │ ├── mipmap-anydpi │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.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 │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml │ └── test │ └── java │ └── com │ └── hsicen │ └── a05_cooperate │ └── ExampleUnitTest.kt ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── hencoder ├── 10_drawing │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── drawing │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ │ └── hsicen.jpg │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── drawing │ │ │ │ ├── Extensions.kt │ │ │ │ ├── LocationMeasure.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── test │ │ │ │ ├── ColorTextView.kt │ │ │ │ ├── DashView.kt │ │ │ │ ├── DrawTest.kt │ │ │ │ ├── PieView.kt │ │ │ │ ├── TagLayout.kt │ │ │ │ └── UserView.kt │ │ │ │ └── view │ │ │ │ ├── AvatarView.kt │ │ │ │ ├── CameraView.kt │ │ │ │ ├── CircleView.kt │ │ │ │ ├── CircleView2.kt │ │ │ │ ├── ColorView.kt │ │ │ │ ├── DashBord.kt │ │ │ │ ├── ImageText.kt │ │ │ │ ├── OrderView.kt │ │ │ │ ├── PaintView.kt │ │ │ │ ├── PieChart.kt │ │ │ │ ├── PointView.kt │ │ │ │ ├── SomeLayout.kt │ │ │ │ ├── SportView.kt │ │ │ │ ├── SquareView.kt │ │ │ │ └── evaluator │ │ │ │ └── HsvEvaluator.kt │ │ └── res │ │ │ ├── drawable │ │ │ ├── hsicen.jpg │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── drawing │ │ └── ExampleUnitTest.kt ├── 11_animator │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── animator │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── animator │ │ │ │ ├── CameraView.kt │ │ │ │ ├── Extensions.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── MaterialEditText.kt │ │ │ │ ├── PointEvaluator.kt │ │ │ │ ├── PointView.kt │ │ │ │ ├── ProvinceView.kt │ │ │ │ └── test │ │ │ │ ├── ColorView.kt │ │ │ │ ├── HsvEvaluator.kt │ │ │ │ ├── MaterialEditTextNew.kt │ │ │ │ └── SportView.kt │ │ └── res │ │ │ ├── drawable │ │ │ ├── avatar_rengwuxian.png │ │ │ ├── hsicen.jpg │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── 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 │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── animator │ │ └── ExampleUnitTest.kt ├── 12_drawable │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── drawable │ │ │ ├── DrawableView.kt │ │ │ ├── Extensions.kt │ │ │ ├── MainActivity.kt │ │ │ ├── MaterialEditText.kt │ │ │ ├── MeshDrawable.kt │ │ │ ├── User.kt │ │ │ └── drawables.kt │ │ └── res │ │ ├── drawable │ │ ├── bitmap_drawable.xml │ │ ├── ic_launcher_background.xml │ │ ├── level_list_drawable.xml │ │ ├── ripple_drawable.xml │ │ ├── ripple_drawable2.xml │ │ ├── ripple_drawable3.xml │ │ ├── ripple_drawable4.xml │ │ ├── ripple_drawable5.xml │ │ └── ripple_drawable6.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ ├── hsicen.jpg │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ └── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml ├── 13_layout │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── layout │ │ │ │ ├── CircleView.kt │ │ │ │ ├── ColorTextView.kt │ │ │ │ ├── Extensions.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── SquareImageView.kt │ │ │ │ └── TagLayout.kt │ │ └── res │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── layout │ │ └── ExampleUnitTest.kt ├── 14_touch │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── touch │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── touch │ │ │ │ ├── CaptureView.kt │ │ │ │ ├── Extensions.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── TouchSecondActivity.kt │ │ │ │ ├── TouchView.kt │ │ │ │ └── sample │ │ │ │ ├── SampleButton.kt │ │ │ │ ├── SampleViewGroup.kt │ │ │ │ └── TouchEventActivity.kt │ │ └── res │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ ├── activity_main.xml │ │ │ ├── activity_touch_event.xml │ │ │ └── activity_touch_second.xml │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── touch │ │ └── ExampleUnitTest.kt ├── 15_scalableimageview │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── scalableimageview │ │ │ ├── Extensions.kt │ │ │ ├── MainActivity.kt │ │ │ ├── ScaleImage.kt │ │ │ └── ScaleImageView.kt │ │ └── res │ │ ├── drawable │ │ ├── avatar_rengwuxian.png │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml ├── 16_multitouch │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── a21_multitouch │ │ │ ├── MainActivity.kt │ │ │ └── view │ │ │ ├── MultiTouchView.kt │ │ │ ├── MultiTouchView1.kt │ │ │ └── MultiTouchView2.kt │ │ └── res │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml ├── 16_multitouch1 │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── multitouch │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── multitouch │ │ │ │ ├── Extensions.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── MultiTouchTestView.kt │ │ │ │ └── MultiTouchView.kt │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ ├── avatar_rengwuxian.png │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── 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 │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── multitouch │ │ └── ExampleUnitTest.kt ├── 17_recyclerviewcore │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── recyclerviewcore │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── recyclerviewcore │ │ │ │ ├── FruitAdapter.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── MoveView.java │ │ │ │ └── manager │ │ │ │ ├── CustomLayoutManager.kt │ │ │ │ ├── CustomSnapHelper.kt │ │ │ │ └── ItemViewInfo.kt │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ ├── activity_main.xml │ │ │ └── item_rv_apple.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── 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 │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── recyclerviewcore │ │ ├── ExampleUnitTest.kt │ │ ├── JavaForTest.java │ │ └── RangeTest.kt ├── 18_constraintlayout │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── a19_constraintlayout │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── MotionActivity.kt │ │ │ │ ├── constraint │ │ │ │ ├── ConstraintActivity.kt │ │ │ │ ├── ConstraintHelperActivity.kt │ │ │ │ └── ConstraintPositionActivity.kt │ │ │ │ └── helper │ │ │ │ └── CircleRevealHelper.kt │ │ └── res │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ ├── activity_constraint.xml │ │ │ ├── activity_constraint_helper.xml │ │ │ ├── activity_main.xml │ │ │ ├── activity_motion.xml │ │ │ ├── activity_ralative_position.xml │ │ │ └── layout_set_type.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a19_constraintlayout │ │ └── ExampleUnitTest.kt ├── 19_motionlayout │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── a20_motionlayout │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── a20_motionlayout │ │ │ │ ├── CardFlyActivity.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── MotionMenuActivity.kt │ │ │ │ └── SceneConstraintActivity.kt │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ ├── activity_card_fly.xml │ │ │ ├── activity_menu_end.xml │ │ │ ├── activity_menu_start.xml │ │ │ ├── activity_scene_constraint.xml │ │ │ ├── activity_scene_end.xml │ │ │ └── activity_scene_start.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── 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 │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ │ └── xml │ │ │ ├── activity_menu_scene.xml │ │ │ ├── activity_motion_scene.xml │ │ │ ├── motion_constraint_scene.xml │ │ │ └── motion_flycard_scene.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a20_motionlayout │ │ └── ExampleUnitTest.kt ├── 1_http │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a1_http │ │ └── HttpClass.kt ├── 20_viewpager │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a21_viewpager │ │ │ ├── MainActivity.kt │ │ │ └── view │ │ │ └── TwoPager.kt │ │ └── res │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml ├── 21_drag_nestedscroll │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ ├── src │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── hsicen │ │ │ │ │ └── a21_drag_nestedscroll │ │ │ │ │ ├── DragCollectActivity.kt │ │ │ │ │ ├── DragUpDownActivity.kt │ │ │ │ │ ├── MainActivity.kt │ │ │ │ │ └── drag │ │ │ │ │ ├── DragHelperGridView.kt │ │ │ │ │ ├── DragListenerGridView.kt │ │ │ │ │ └── DragUpDownLayout.kt │ │ │ └── res │ │ │ │ ├── drawable │ │ │ │ └── ic_launcher_background.xml │ │ │ │ ├── layout │ │ │ │ ├── activity_drag_collect.xml │ │ │ │ ├── activity_drag_updown.xml │ │ │ │ └── activity_main.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── a21_drag_nestedscroll │ │ │ └── ExampleUnitTest.kt │ └── 拖拽和嵌套滑动.md ├── 22_Thread_interaction │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a22_thread_interaction │ │ ├── AndroidThread.java │ │ ├── InteractTest.java │ │ ├── ThreadReact.kt │ │ └── WaitNotify.java ├── 22_thread │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ ├── src │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── hsicen │ │ │ │ │ └── a22_thread │ │ │ │ │ ├── AndroidTest.java │ │ │ │ │ ├── Main.java │ │ │ │ │ ├── MainActivity.kt │ │ │ │ │ ├── ReadWriteLockDemo.java │ │ │ │ │ ├── SingleMan.java │ │ │ │ │ ├── Synchronized1Demo.java │ │ │ │ │ ├── Synchronized2Demo.java │ │ │ │ │ ├── Synchronized3Demo.java │ │ │ │ │ ├── TestDemo.java │ │ │ │ │ ├── ThreadTest.java │ │ │ │ │ └── kotlin │ │ │ │ │ └── CoroutineTest.kt │ │ │ └── res │ │ │ │ ├── drawable-v24 │ │ │ │ └── ic_launcher_foreground.xml │ │ │ │ ├── drawable │ │ │ │ └── ic_launcher_background.xml │ │ │ │ ├── layout │ │ │ │ └── activity_main.xml │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ │ ├── 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 │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── a22_thread │ │ │ └── ExampleUnitTest.kt │ └── 多线程以及线程同步.md ├── 23_rxjava │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── a23_rxjava │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── a23_rxjava │ │ │ │ ├── ApiStore.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ └── User.kt │ │ └── res │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a23_rxjava │ │ └── ExampleUnitTest.kt ├── 24_io │ ├── .gitignore │ ├── build.gradle.kts │ ├── hsc.txt │ ├── hscCopy.txt │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a24_io │ │ │ ├── MainActivity.kt │ │ │ ├── Test.java │ │ │ └── Test.kt │ │ └── res │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml ├── 25_gradle │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ ├── src │ │ ├── debug │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── a25_gradle │ │ │ │ └── Utils.kt │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── a25_gradle │ │ │ │ ├── MainActivity.kt │ │ │ │ └── SecondActivity.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ ├── activity_main.xml │ │ │ └── activity_second.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ └── version.properties ├── 28_plugin │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ └── apk │ │ │ └── 28_plugin_lib.apk │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a28_plugin │ │ │ ├── MainActivity.kt │ │ │ └── utils │ │ │ ├── PagerAdapter.kt │ │ │ └── Utils.kt │ │ └── res │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml ├── 28_plugin_lib │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a28_plugin_lib │ │ │ ├── SecondActivity.kt │ │ │ └── Utils.kt │ │ └── res │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml ├── 29_hotfix │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ └── apk │ │ │ └── hotfix.apk │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a29_hotfix │ │ │ ├── HotfixApplication.kt │ │ │ ├── MainActivity.kt │ │ │ └── Title.kt │ │ └── res │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml ├── 2_encrypt │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a2_encrypt │ │ ├── EncryptClass.kt │ │ └── User.kt ├── 30_annotation │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a30_annotation │ │ │ ├── MainActivity.kt │ │ │ └── SecondActivity.kt │ │ └── res │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ └── activity_second.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml ├── 30_annotation_reflection │ ├── .gitignore │ ├── build.gradle.kts │ ├── consumer-rules.pro │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a30_annotation_reflection │ │ │ ├── BindView.kt │ │ │ └── Binding.kt │ │ └── res │ │ └── values │ │ └── strings.xml ├── 30_lib │ ├── .gitignore │ ├── build.gradle.kts │ ├── consumer-rules.pro │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a30_lib │ │ │ └── Binding.kt │ │ └── res │ │ └── values │ │ └── strings.xml ├── 30_lib_annotation │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a30_lib_annotation │ │ └── BindView.java ├── 30_lib_processos │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a30_lib_processor │ │ │ └── BindingProcessor.java │ │ └── resources │ │ └── META-INF │ │ └── services │ │ └── javax.annotation.processing.Processor ├── 31_generics │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a31_generics │ │ │ ├── List │ │ │ └── HsicenList.java │ │ │ ├── MainActivity.java │ │ │ ├── food │ │ │ ├── Eater.java │ │ │ └── Food.java │ │ │ ├── fruit │ │ │ ├── Apple.java │ │ │ ├── Banana.java │ │ │ └── Fruit.java │ │ │ ├── shop │ │ │ ├── AppleShop.java │ │ │ ├── RepairShop.java │ │ │ ├── Shop.java │ │ │ ├── SimShop.java │ │ │ └── UnicomSimShop.java │ │ │ └── sim │ │ │ ├── ChinaMobileSim.java │ │ │ ├── ChinaTelecomSim.java │ │ │ ├── ChinaUniomSim.java │ │ │ └── Sim.java │ │ └── res │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml ├── 32_view_draw_process │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── a32_view_draw_process │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── a32_view_draw_process │ │ │ │ ├── MainActivity.kt │ │ │ │ └── ViewDrag.kt │ │ └── res │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a32_view_draw_process │ │ └── ExampleUnitTest.kt ├── 33_hashmap │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── a33_hashmap │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── a33_hashmap │ │ │ │ ├── MainActivity.kt │ │ │ │ └── Test.java │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── 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 │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a33_hashmap │ │ └── ExampleUnitTest.kt ├── 34_gradle_process │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── a34_gradle_process │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── a34_gradle_process │ │ │ │ └── MainActivity.kt │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── 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 │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a34_gradle_process │ │ └── ExampleUnitTest.kt ├── 35_jvm │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── a35_jvm │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── a35_jvm │ │ │ │ ├── Father.java │ │ │ │ ├── Main.java │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── Son.java │ │ │ │ ├── User.kt │ │ │ │ └── test.kt │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── 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 │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a35_jvm │ │ ├── ExampleUnitTest.kt │ │ ├── ListTest.kt │ │ ├── MapTest.kt │ │ ├── ReflectTest.java │ │ ├── SetTest.kt │ │ └── SquareTest.java ├── 36_window_inserts │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── hsicen │ │ │ └── a36_window_inserts │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── hsicen │ │ │ │ └── a36_window_inserts │ │ │ │ ├── EdgeToEdgeDelegate.kt │ │ │ │ ├── Insets.kt │ │ │ │ └── MainActivity.kt │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.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 │ │ │ ├── values-night │ │ │ └── themes.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a36_window_inserts │ │ └── ExampleUnitTest.kt ├── 3_author │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a3_author │ │ └── AuthorClass.kt ├── 4_retrofit │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── aicoder │ │ │ └── hencoderplus │ │ │ ├── Account.kt │ │ │ ├── CircleTest.kt │ │ │ ├── GithubService.kt │ │ │ ├── MainActivity.kt │ │ │ ├── Purchase.kt │ │ │ └── Repo.kt │ │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── 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 │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml ├── 4_tcpip │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a4_tcpip │ │ └── TcpIpClass.kt ├── 5_kotlin │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── hsicen │ │ └── a5_kotlin │ │ ├── KotlinClass.kt │ │ └── base │ │ ├── Country.kt │ │ └── CountryTest.kt ├── 5_retrofit │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a6_retrofit │ │ │ ├── MainActivity.kt │ │ │ ├── Net.kt │ │ │ ├── entity │ │ │ ├── Repo.kt │ │ │ └── User.kt │ │ │ ├── practise │ │ │ ├── APIResult.kt │ │ │ ├── FactoryRegistry.kt │ │ │ ├── PractiseTest.kt │ │ │ ├── ResponseTransformer.kt │ │ │ ├── RetrofitProxy.kt │ │ │ ├── ThrowableResolver.kt │ │ │ └── TransformConverterFactory.kt │ │ │ ├── proxy │ │ │ ├── Client.kt │ │ │ ├── DynamicHandler.kt │ │ │ ├── RealSubject.kt │ │ │ └── Subject.kt │ │ │ └── service │ │ │ ├── GithubService.kt │ │ │ └── RealService.kt │ │ └── res │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml ├── 6_okhttp │ ├── .gitignore │ ├── README.md │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── a6_okhttp │ │ │ ├── IpLookUp.kt │ │ │ ├── Main.kt │ │ │ ├── MainActivity.kt │ │ │ ├── Repos.kt │ │ │ ├── User.kt │ │ │ └── interceptor │ │ │ ├── GzipRequestInterceptor.kt │ │ │ └── LoggingInterceptor.kt │ │ └── res │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml └── 9_kolitn │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── hsicen │ │ └── kolitn │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── hsicen │ │ │ └── kolitn │ │ │ ├── Animal.java │ │ │ ├── Cat.kt │ │ │ ├── Food.kt │ │ │ ├── Foods.java │ │ │ ├── JavaTest.java │ │ │ ├── KotlinTest.kt │ │ │ ├── LoopTest.kt │ │ │ ├── MainActivity.kt │ │ │ ├── Monster.java │ │ │ ├── Monsters.kt │ │ │ ├── Outer.kt │ │ │ ├── Person.java │ │ │ ├── Person.kt │ │ │ ├── PersonTest.kt │ │ │ ├── Store.kt │ │ │ ├── Tools.kt │ │ │ ├── User.kt │ │ │ └── list │ │ │ └── sort.kt │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── 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 │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── hsicen │ └── kolitn │ └── ExampleUnitTest.kt ├── images ├── img1.png ├── img10.gif ├── img2.png ├── img3.png ├── img4.gif ├── img5.gif ├── img6.gif ├── img7.png ├── img8.gif └── img9.gif ├── note ├── 01-HTTP工作原理.md ├── 01-HTTP工作原理.pdf ├── 02-编码加密和登录授权.md ├── 02-编码加密和登录授权.pdf ├── 03-登录和第三方授权.md ├── 03-登录和第三方授权.pdf ├── 04-TCPIP和HTTPS.md ├── 04-TCPIP和HTTPS.pdf ├── 05-Retrofit原理解析.md ├── 05-Retrofit原理解析.pdf ├── 20-拖拽和嵌套滑动.md ├── 20-拖拽和嵌套滑动.pdf ├── 21-多线程和线程同步.md ├── 21-多线程和线程同步.pdf ├── 22-线程间通信和Android多线程.md ├── 22-线程间通信和Android多线程.pdf ├── 23-RxJava2原理解析.md ├── 23-RxJava2原理解析.pdf └── image │ ├── 01http1.jpg │ ├── 01http2.jpg │ ├── 01http3.jpg │ ├── 01http4.jpg │ ├── 02encode1.jpg │ ├── 02encode2.jpg │ ├── 02encode3.jpg │ ├── 02encode4.jpg │ ├── 02encode5.jpg │ ├── 02encode6.jpg │ ├── 02encode7.jpg │ ├── 02encode8.jpg │ ├── 02encode9.jpg │ ├── 03cookie1.jpg │ ├── 03cookie2.jpg │ ├── 03cookie3.jpg │ ├── 03cookie4.jpg │ ├── 03cookie5.jpg │ ├── 04tcpip1.jpg │ ├── 04tcpip2.jpg │ ├── 04tcpip3.jpg │ ├── 05retofit1.jpg │ ├── 23rxjava1.jpg │ ├── 23rxjava2.jpg │ ├── 23rxjava3.jpg │ ├── 23rxjava4.jpg │ ├── 23rxjava5.jpg │ ├── 23rxjava6.jpg │ └── 23rxjava7.jpg └── settings.gradle.kts /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/ 5 | .DS_Store 6 | /build 7 | /captures 8 | .externalNativeBuild 9 | .cxx 10 | /asm_plugin/build/ 11 | asm_lifecycle_repo/ 12 | .kotlin 13 | -------------------------------------------------------------------------------- /Inject/daggersample/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /Inject/daggersample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/daggersample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Inject/daggersample/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/daggersample/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Inject/daggersample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/daggersample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Inject/daggersample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/daggersample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Inject/daggersample/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/daggersample/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Inject/daggersample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/daggersample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Inject/daggersample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | DaggerSample 3 | -------------------------------------------------------------------------------- /Inject/hiltsample/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /Inject/hiltsample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/hiltsample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Inject/hiltsample/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/hiltsample/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Inject/hiltsample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/hiltsample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Inject/hiltsample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/hiltsample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Inject/hiltsample/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/hiltsample/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Inject/hiltsample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/hiltsample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Inject/hiltsample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | HiltSample 3 | -------------------------------------------------------------------------------- /Inject/koinsample/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /Inject/koinsample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/koinsample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Inject/koinsample/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/koinsample/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Inject/koinsample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/koinsample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Inject/koinsample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/koinsample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Inject/koinsample/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/koinsample/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Inject/koinsample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Inject/koinsample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Inject/koinsample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | KoinSample 3 | -------------------------------------------------------------------------------- /Jetpack/appstartup/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /Jetpack/appstartup/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/appstartup/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Jetpack/appstartup/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/appstartup/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Jetpack/appstartup/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/appstartup/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Jetpack/appstartup/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/appstartup/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Jetpack/appstartup/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/appstartup/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Jetpack/appstartup/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/appstartup/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Jetpack/appstartup/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/appstartup/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Jetpack/appstartup/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/appstartup/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Jetpack/appstartup/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/appstartup/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Jetpack/appstartup/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/appstartup/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Jetpack/appstartup/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | AppStartup 3 | -------------------------------------------------------------------------------- /Jetpack/coroutine/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /Jetpack/coroutine/src/main/java/com/hsicen/coroutine/stateflow.kt: -------------------------------------------------------------------------------- 1 | package com.hsicen.coroutine 2 | 3 | /** 4 | * 作者:hsicen 6/2/21 17:24 5 | * 邮箱:codinghuang@163.com 6 | * 作用: 7 | * 描述:StateFlow 8 | */ 9 | 10 | -------------------------------------------------------------------------------- /Jetpack/coroutine/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/coroutine/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Jetpack/coroutine/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/coroutine/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Jetpack/coroutine/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/coroutine/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Jetpack/coroutine/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/coroutine/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Jetpack/coroutine/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/coroutine/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Jetpack/coroutine/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/coroutine/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Jetpack/coroutine/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Coroutine 3 | -------------------------------------------------------------------------------- /Jetpack/datastore/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /Jetpack/datastore/src/main/proto/settings.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | option java_package = "com.hsicen.datastore"; 4 | option java_multiple_files = true; 5 | 6 | message Settings { 7 | int32 counter = 1; 8 | } -------------------------------------------------------------------------------- /Jetpack/datastore/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/datastore/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /Jetpack/datastore/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/datastore/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /Jetpack/datastore/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/datastore/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /Jetpack/datastore/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/datastore/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /Jetpack/datastore/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/datastore/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /Jetpack/datastore/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/datastore/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /Jetpack/datastore/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/datastore/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /Jetpack/datastore/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/datastore/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /Jetpack/datastore/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/datastore/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /Jetpack/datastore/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsicen/HencoderPlus/28eb0c214bf43b7280401386594891209a502426/Jetpack/datastore/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /Jetpack/datastore/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | datastore 3 | -------------------------------------------------------------------------------- /Jetpack/datastore/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |