├── 24_io
├── .gitignore
├── text_copy.txt
├── text.txt
└── build.gradle
├── 33_lib
├── .gitignore
├── consumer-rules.pro
└── src
│ ├── main
│ ├── res
│ │ └── values
│ │ │ └── strings.xml
│ └── AndroidManifest.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a33_lib
│ └── ExampleUnitTest.java
├── 09_drawing
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.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
│ │ ├── drawable-v24
│ │ │ └── avatar_rengwuxian.png
│ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ └── layout
│ │ │ └── activity_main.xml
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a09_drawing
│ │ ├── Utils.java
│ │ └── MainActivity.java
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a09_drawing
│ └── ExampleUnitTest.java
├── 13_layout
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.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
│ │ ├── drawable
│ │ │ └── avatar_rengwuxian.png
│ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ └── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a13_layout
│ │ ├── Utils.java
│ │ └── MainActivity.java
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a13_layout
│ └── ExampleUnitTest.java
├── 14_touch
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.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
│ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ └── layout
│ │ │ └── activity_main.xml
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a14_touch
│ │ └── view
│ │ └── TouchView.java
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a14_touch
│ └── ExampleUnitTest.java
├── 23_rxjava
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.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
│ │ └── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a23_rxjava
│ │ └── network
│ │ └── Api.java
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a23_rxjava
│ └── ExampleUnitTest.java
├── 30_arch
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.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
│ │ └── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a30_arch
│ │ ├── data
│ │ └── DataCenter.java
│ │ └── mvp
│ │ └── Presenter.java
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a30_arch
│ └── ExampleUnitTest.java
├── 32_hotfix
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.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
│ │ └── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ ├── assets
│ │ └── apk
│ │ │ ├── hotfix.dex
│ │ │ └── 32_hotfix-debug.apk
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a32_hotfix
│ │ └── Title.java
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a32_hotfix
│ └── ExampleUnitTest.java
├── 34_generics
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.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
│ │ └── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a34_generics
│ │ ├── sim
│ │ ├── Sim.java
│ │ ├── ChinaMobileSim.java
│ │ ├── ChinaUnicomSim.java
│ │ └── ChinaTelecomSim.java
│ │ ├── food
│ │ ├── Food.java
│ │ ├── Eater.java
│ │ ├── Animal.java
│ │ ├── Human.java
│ │ ├── Alligator.java
│ │ └── HenCoderShopList.java
│ │ ├── fruit
│ │ ├── Fruit.java
│ │ ├── Banana.java
│ │ ├── Watermelon.java
│ │ └── Apple.java
│ │ ├── kotlin
│ │ ├── Huggable.kt
│ │ ├── KShop.kt
│ │ └── KotlinTest.kt
│ │ ├── shop
│ │ ├── NormalShop.java
│ │ ├── RepairableShop.java
│ │ ├── FruitShop.java
│ │ ├── SimShop.java
│ │ ├── NormalFruitShop.java
│ │ ├── EaterShop.java
│ │ ├── AppleShop.java
│ │ ├── Shop.java
│ │ └── UnicomSimShop.java
│ │ ├── HenCoderMap.java
│ │ ├── HenCoderShopList.java
│ │ └── HenCoderList.java
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a34_generics
│ └── ExampleUnitTest.java
├── 07_kotlin_app
├── .gitignore
├── src
│ └── main
│ │ └── res
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
└── build.gradle
├── 07_kotlin_base
├── .gitignore
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ └── com
│ │ │ └── example
│ │ │ └── core
│ │ │ ├── BaseView.java
│ │ │ ├── http
│ │ │ └── EntityCallback.java
│ │ │ └── BaseApplication.java
│ │ └── res
│ │ └── values
│ │ ├── strings.xml
│ │ ├── colors.xml
│ │ └── styles.xml
└── build.gradle
├── 07_kotlin_lesson
├── .gitignore
├── src
│ └── main
│ │ ├── res
│ │ ├── values
│ │ │ ├── colors.xml
│ │ │ └── styles.xml
│ │ └── menu
│ │ │ └── menu_lesson.xml
│ │ └── AndroidManifest.xml
└── build.gradle
├── 11_animation
├── .gitignore
└── src
│ ├── main
│ └── res
│ │ ├── values
│ │ ├── strings.xml
│ │ ├── colors.xml
│ │ └── styles.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
│ │ ├── drawable
│ │ └── avatar_rengwuxian.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a11_animation
│ └── ExampleUnitTest.java
├── 16_multi_touch
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.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
│ │ ├── drawable
│ │ │ └── avatar_rengwuxian.png
│ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ └── layout
│ │ │ └── activity_main.xml
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a16_multi_touch
│ │ └── MainActivity.java
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a16_multi_touch
│ └── ExampleUnitTest.java
├── 18_motionlayout
├── .gitignore
├── CycleEditor.jar
└── src
│ ├── main
│ ├── res
│ │ ├── drawable
│ │ │ ├── avatar.jpg
│ │ │ ├── film_cover.webp
│ │ │ ├── ic_bookmark_24dp.xml
│ │ │ └── ic_heart_24dp.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
│ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ └── layout
│ │ │ ├── activity_go.xml
│ │ │ └── activity_main.xml
│ └── java
│ │ └── com
│ │ └── example
│ │ └── motionlayout
│ │ ├── util
│ │ └── Float.kt
│ │ └── SampleActivity.kt
│ └── test
│ └── java
│ └── com
│ └── example
│ └── motionlayout
│ └── ExampleUnitTest.kt
├── 25_gradle
├── app
│ ├── .gitignore
│ ├── version.properties
│ └── src
│ │ ├── main
│ │ ├── res
│ │ │ ├── values
│ │ │ │ ├── strings.xml
│ │ │ │ ├── colors.xml
│ │ │ │ └── styles.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
│ │ │ └── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ └── java
│ │ │ └── com
│ │ │ └── hencoder
│ │ │ └── gradledemo
│ │ │ └── MainActivity.java
│ │ ├── release
│ │ └── java
│ │ │ └── com
│ │ │ └── hencoder
│ │ │ └── gradledemo
│ │ │ └── Utils.java
│ │ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── hencoder
│ │ │ └── gradledemo
│ │ │ └── ExampleUnitTest.java
│ │ ├── debug
│ │ └── java
│ │ │ └── com
│ │ │ └── hencoder
│ │ │ └── gradledemo
│ │ │ └── Utils.java
│ │ └── internal
│ │ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── gradledemo
│ │ └── Utils.java
├── library1
│ ├── .gitignore
│ └── src
│ │ ├── main
│ │ ├── res
│ │ │ └── values
│ │ │ │ └── strings.xml
│ │ └── AndroidManifest.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── library1
│ │ └── ExampleUnitTest.java
├── library2
│ ├── .gitignore
│ └── src
│ │ ├── main
│ │ ├── res
│ │ │ └── values
│ │ │ │ └── strings.xml
│ │ └── AndroidManifest.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── library2
│ │ └── ExampleUnitTest.java
├── settings.gradle
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── .gitignore
└── build.gradle
├── 31_pluginnable
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.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
│ │ └── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ ├── assets
│ │ └── apk
│ │ │ └── 31_pluginnable_plugin-debug.apk
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a31_pluginnable
│ │ └── utils
│ │ └── Utils.java
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a31_pluginnable
│ └── ExampleUnitTest.java
├── 33_lib_processor
├── .gitignore
├── src
│ └── main
│ │ └── resources
│ │ └── META-INF
│ │ └── services
│ │ └── javax.annotation.processing.Processor
└── build.gradle
├── 33_lib_reflection
├── consumer-rules.pro
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ └── values
│ │ │ └── strings.xml
│ ├── AndroidManifest.xml
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a33_lib_reflection
│ │ └── BindView.java
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a33_lib_reflection
│ └── ExampleUnitTest.java
├── 12_bitmap_drawable
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ ├── attrs.xml
│ │ │ └── styles.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
│ │ └── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a12_bitmap_drawable
│ │ ├── view
│ │ └── BigCandleView.java
│ │ └── Utils.java
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a12_bitmap_drawable
│ └── ExampleUnitTest.java
├── 15_scalableimageview
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.xml
│ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── drawable
│ │ │ └── avatar_rengwuxian.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
│ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ └── layout
│ │ │ └── activity_main.xml
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a15_scalableimageview
│ │ └── MainActivity.java
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a15_scalableimageview
│ └── ExampleUnitTest.java
├── 17_constraintlayout
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.xml
│ │ ├── drawable
│ │ │ ├── qq.png
│ │ │ ├── sun.png
│ │ │ ├── earth.png
│ │ │ ├── moon.png
│ │ │ ├── qzone.png
│ │ │ ├── weibo.png
│ │ │ ├── twitter.png
│ │ │ ├── wechat.png
│ │ │ ├── wechat_friend.png
│ │ │ ├── ic_mail_black_24dp.xml
│ │ │ ├── ic_play_circle_filled_black_24dp.xml
│ │ │ ├── ic_save_black_24dp.xml
│ │ │ └── ic_favorite_black_24dp.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
│ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ └── layout
│ │ │ └── activity_main.xml
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a19_constraintlayout
│ │ ├── LinearActivity.kt
│ │ ├── CircularReveal.kt
│ │ ├── DimensionRatio.kt
│ │ ├── GuideLineActivity.kt
│ │ ├── ConstraintLayoutSample.kt
│ │ └── FlowActivity.kt
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a19_constraintlayout
│ └── ExampleUnitTest.kt
├── 19_touch_viewgroup
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.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
│ │ └── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a19_touch_viewgroup
│ │ └── MainActivity.java
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a19_touch_viewgroup
│ └── ExampleUnitTest.java
├── 20_drag_nestedscroll
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.xml
│ │ ├── drawable
│ │ │ ├── google_logo.jpg
│ │ │ └── avatar_rengwuxian.png
│ │ ├── 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
│ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ └── layout
│ │ │ └── drag_up_down.xml
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a20_drag_nestedscroll
│ │ └── MainActivity.java
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a20_drag_nestedscroll
│ └── ExampleUnitTest.java
├── 22_thread_interaction
├── .gitignore
├── src
│ └── main
│ │ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a22_thread_interaction
│ │ ├── TestDemo.java
│ │ ├── ThreadInteractionDemo.java
│ │ ├── Main.java
│ │ └── CustomizableThreadDemo.java
└── build.gradle
├── 26_gradle_plugin
├── app
│ ├── .gitignore
│ └── src
│ │ ├── main
│ │ └── res
│ │ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.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
│ │ │ └── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a26_gradle_plugin
│ │ └── ExampleUnitTest.java
├── buildSrc
│ ├── .gitignore
│ ├── src
│ │ └── main
│ │ │ ├── resources
│ │ │ └── META-INF
│ │ │ │ └── gradle-plugins
│ │ │ │ └── com.hencoder.plugindemo.properties
│ │ │ └── groovy
│ │ │ └── com
│ │ │ └── hencoder
│ │ │ └── plugin
│ │ │ ├── HenCoderExtension.groovy
│ │ │ └── HenCoder.groovy
│ └── build.gradle
├── settings.gradle
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── .gitignore
└── build.gradle
├── 31_pluginnable_plugin
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.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
│ │ └── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a31_pluginnable_plugin
│ │ ├── Utils.java
│ │ └── SecondActivity.java
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a31_pluginnable_plugin
│ └── ExampleUnitTest.java
├── 33_lib_annotations
├── .gitignore
├── build.gradle
└── src
│ └── main
│ └── java
│ └── com
│ └── hencoder
│ └── a33_lib_annotations
│ └── BindView.java
├── 10_text_and_transformation
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.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
│ │ ├── drawable-v24
│ │ │ └── avatar_rengwuxian.png
│ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ └── layout
│ │ │ └── activity_main.xml
│ ├── assets
│ │ └── Quicksand-Regular.ttf
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a10_text_and_transformation
│ │ └── MainActivity.java
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a10_text_and_transformation
│ └── ExampleUnitTest.java
├── 18_motionlayout_example
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── drawable
│ │ │ ├── cat_1.jpeg
│ │ │ ├── film_cover.webp
│ │ │ ├── ic_play_arrow_gray_32dp.xml
│ │ │ ├── ic_home_black_24dp.xml
│ │ │ ├── ic_clear_gray_32dp.xml
│ │ │ ├── ic_dashboard_black_24dp.xml
│ │ │ ├── ic_bookmark_24dp.xml
│ │ │ └── ic_notifications_black_24dp.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
│ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ └── values
│ │ │ ├── colors.xml
│ │ │ └── styles.xml
│ └── java
│ │ └── com
│ │ └── example
│ │ └── youtube
│ │ ├── YoutubeActivity.kt
│ │ └── MainActivity.kt
│ └── test
│ └── java
│ └── com
│ └── example
│ └── youtube
│ └── ExampleUnitTest.kt
├── 21_thread_synchronization
├── .gitignore
├── src
│ └── main
│ │ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a20_thread_synchronization
│ │ ├── TestDemo.java
│ │ └── SingleMan.java
└── build.gradle
├── 33_annotation_processing
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.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
│ │ └── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a33_annotation_processing
│ │ └── InnerBinding.java
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a33_annotation_processing
│ └── ExampleUnitTest.java
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── README.md
└── .gitignore
/24_io/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/24_io/text_copy.txt:
--------------------------------------------------------------------------------
1 | abcdd赛况范
--------------------------------------------------------------------------------
/33_lib/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/33_lib/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/09_drawing/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/13_layout/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/14_touch/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/23_rxjava/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/24_io/text.txt:
--------------------------------------------------------------------------------
1 | 12334
2 | 3
3 | 454
--------------------------------------------------------------------------------
/30_arch/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/32_hotfix/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/34_generics/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/07_kotlin_app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/07_kotlin_base/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/07_kotlin_lesson/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/11_animation/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/16_multi_touch/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/18_motionlayout/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/25_gradle/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/31_pluginnable/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/33_lib_processor/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/33_lib_reflection/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/12_bitmap_drawable/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/15_scalableimageview/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/17_constraintlayout/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/19_touch_viewgroup/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/20_drag_nestedscroll/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/22_thread_interaction/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/25_gradle/library1/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/25_gradle/library2/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/26_gradle_plugin/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/31_pluginnable_plugin/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/33_lib_annotations/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/33_lib_reflection/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/10_text_and_transformation/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/18_motionlayout_example/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/21_thread_synchronization/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/26_gradle_plugin/buildSrc/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/33_annotation_processing/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/25_gradle/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':library1', ':library2'
2 |
--------------------------------------------------------------------------------
/26_gradle_plugin/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name='26_gradle_plugin'
3 |
--------------------------------------------------------------------------------
/25_gradle/app/version.properties:
--------------------------------------------------------------------------------
1 | #Tue Jun 04 22:19:43 CST 2019
2 | VERSION_NAME=1.0.0
3 | VERSION_CODE=2332
4 |
--------------------------------------------------------------------------------
/14_touch/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 14_touch
3 |
4 |
--------------------------------------------------------------------------------
/18_motionlayout/CycleEditor.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout/CycleEditor.jar
--------------------------------------------------------------------------------
/30_arch/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 30_arch
3 |
4 |
--------------------------------------------------------------------------------
/33_lib/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 33_lib
3 |
4 |
--------------------------------------------------------------------------------
/09_drawing/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 09_drawing
3 |
4 |
--------------------------------------------------------------------------------
/13_layout/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 13_layout
3 |
4 |
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 23_rxjava
3 |
4 |
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 32_hotfix
3 |
4 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/11_animation/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 11_animation
3 |
4 |
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | GradleDemo
3 |
4 |
--------------------------------------------------------------------------------
/25_gradle/library1/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | library1
3 |
4 |
--------------------------------------------------------------------------------
/25_gradle/library2/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | library2
3 |
4 |
--------------------------------------------------------------------------------
/34_generics/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 34_generics
3 |
4 |
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 16_multi_touch
3 |
4 |
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 31_pluginnable
3 |
4 |
--------------------------------------------------------------------------------
/33_lib_processor/src/main/resources/META-INF/services/javax.annotation.processing.Processor:
--------------------------------------------------------------------------------
1 | com.hencoder.a33_lib_processor.BindingProcessor
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 12_bitmap_drawable
3 |
4 |
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 19_touch_viewgroup
3 |
4 |
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 26_gradle_plugin
3 |
4 |
--------------------------------------------------------------------------------
/32_hotfix/src/main/assets/apk/hotfix.dex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/32_hotfix/src/main/assets/apk/hotfix.dex
--------------------------------------------------------------------------------
/33_lib_reflection/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 33_lib_reflection
3 |
4 |
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | ScalableImageView
3 |
4 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 19_constraintlayout
3 |
4 |
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 20_drag_nestedscroll
3 |
4 |
--------------------------------------------------------------------------------
/25_gradle/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/25_gradle/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/sim/Sim.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.sim;
2 |
3 | public interface Sim {
4 | }
5 |
--------------------------------------------------------------------------------
/26_gradle_plugin/buildSrc/src/main/resources/META-INF/gradle-plugins/com.hencoder.plugindemo.properties:
--------------------------------------------------------------------------------
1 | implementation-class=com.hencoder.plugin.HenCoder
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 31_pluginnable_plugin
3 |
4 |
--------------------------------------------------------------------------------
/33_lib/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/07_kotlin_base/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/14_touch/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/14_touch/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/qq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/drawable/qq.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/sun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/drawable/sun.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/drawable/avatar.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout/src/main/res/drawable/avatar.jpg
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/30_arch/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/30_arch/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/30_arch/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/assets/apk/32_hotfix-debug.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/32_hotfix/src/main/assets/apk/32_hotfix-debug.apk
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 33_annotation_processing
3 |
4 |
--------------------------------------------------------------------------------
/07_kotlin_base/src/main/java/com/example/core/BaseView.java:
--------------------------------------------------------------------------------
1 | package com.example.core;
2 |
3 | public interface BaseView {
4 | T getPresenter();
5 | }
6 |
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/09_drawing/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/09_drawing/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 10_text_and_transformation
3 |
4 |
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/13_layout/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/13_layout/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/13_layout/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/14_touch/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/14_touch/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/earth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/drawable/earth.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/moon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/drawable/moon.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/qzone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/drawable/qzone.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/weibo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/drawable/weibo.png
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/23_rxjava/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/23_rxjava/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/23_rxjava/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/25_gradle/library1/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/25_gradle/library2/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/26_gradle_plugin/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/26_gradle_plugin/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/30_arch/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/30_arch/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/32_hotfix/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/32_hotfix/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/32_hotfix/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/07_kotlin_app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/07_kotlin_app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/09_drawing/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/09_drawing/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/09_drawing/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/11_animation/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/11_animation/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/11_animation/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/drawable/avatar_rengwuxian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/13_layout/src/main/res/drawable/avatar_rengwuxian.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/13_layout/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/13_layout/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/14_touch/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/drawable/twitter.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/wechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/drawable/wechat.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/drawable/film_cover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout/src/main/res/drawable/film_cover.webp
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/23_rxjava/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/23_rxjava/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/25_gradle/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/25_gradle/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/30_arch/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/30_arch/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/32_hotfix/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/32_hotfix/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/34_generics/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/34_generics/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/34_generics/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/34_generics/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/07_kotlin_app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/07_kotlin_app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/drawable/avatar_rengwuxian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/11_animation/src/main/res/drawable/avatar_rengwuxian.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/11_animation/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/11_animation/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/13_layout/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/13_layout/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/14_touch/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/14_touch/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/14_touch/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/16_multi_touch/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/16_multi_touch/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/16_multi_touch/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/drawable/cat_1.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout_example/src/main/res/drawable/cat_1.jpeg
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/23_rxjava/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/23_rxjava/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/25_gradle/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/25_gradle/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/30_arch/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/30_arch/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/32_hotfix/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/32_hotfix/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/33_lib_reflection/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/food/Food.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.food;
2 |
3 | public interface Food {
4 | void eaten();
5 | }
6 |
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/34_generics/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/07_kotlin_app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/drawable-v24/avatar_rengwuxian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/09_drawing/src/main/res/drawable-v24/avatar_rengwuxian.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/09_drawing/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/09_drawing/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/09_drawing/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/09_drawing/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/11_animation/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/11_animation/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/12_bitmap_drawable/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/12_bitmap_drawable/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/13_layout/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/13_layout/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/13_layout/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/14_touch/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/14_touch/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/drawable/avatar_rengwuxian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/16_multi_touch/src/main/res/drawable/avatar_rengwuxian.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/16_multi_touch/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/16_multi_touch/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/wechat_friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/drawable/wechat_friend.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/19_touch_viewgroup/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/19_touch_viewgroup/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/drawable/google_logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/20_drag_nestedscroll/src/main/res/drawable/google_logo.jpg
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/23_rxjava/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/23_rxjava/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/23_rxjava/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/25_gradle/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/30_arch/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/32_hotfix/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/32_hotfix/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/32_hotfix/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/sim/ChinaMobileSim.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.sim;
2 |
3 | public class ChinaMobileSim implements Sim {
4 | }
5 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/sim/ChinaUnicomSim.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.sim;
2 |
3 | public class ChinaUnicomSim implements Sim {
4 | }
5 |
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/34_generics/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/34_generics/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/34_generics/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/07_kotlin_app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/07_kotlin_app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/07_kotlin_app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/09_drawing/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/11_animation/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/11_animation/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/12_bitmap_drawable/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/12_bitmap_drawable/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/15_scalableimageview/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/15_scalableimageview/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/16_multi_touch/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/16_multi_touch/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/drawable/film_cover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout_example/src/main/res/drawable/film_cover.webp
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/19_touch_viewgroup/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/19_touch_viewgroup/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/20_drag_nestedscroll/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/20_drag_nestedscroll/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/25_gradle/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/25_gradle/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/25_gradle/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/26_gradle_plugin/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/26_gradle_plugin/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/fruit/Fruit.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.fruit;
2 |
3 | public interface Fruit {
4 | float getWeight();
5 | }
6 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/kotlin/Huggable.kt:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.kotlin
2 |
3 | interface Huggable {
4 | fun hug(person: T)
5 | }
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/sim/ChinaTelecomSim.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.sim;
2 |
3 | public class ChinaTelecomSim implements Sim {
4 | }
5 |
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/34_generics/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/34_generics/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/07_kotlin_app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/07_kotlin_app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/assets/Quicksand-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/10_text_and_transformation/src/main/assets/Quicksand-Regular.ttf
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/11_animation/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/12_bitmap_drawable/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/drawable/avatar_rengwuxian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/15_scalableimageview/src/main/res/drawable/avatar_rengwuxian.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/15_scalableimageview/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/15_scalableimageview/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/15_scalableimageview/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/16_multi_touch/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/16_multi_touch/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/16_multi_touch/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout_example/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout_example/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/19_touch_viewgroup/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/drawable/avatar_rengwuxian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/20_drag_nestedscroll/src/main/res/drawable/avatar_rengwuxian.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/20_drag_nestedscroll/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/20_drag_nestedscroll/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/20_drag_nestedscroll/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/25_gradle/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/25_gradle/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/26_gradle_plugin/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/26_gradle_plugin/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/26_gradle_plugin/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable_plugin/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable_plugin/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable_plugin/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable_plugin/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/12_bitmap_drawable/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/12_bitmap_drawable/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/12_bitmap_drawable/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout_example/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout_example/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/19_touch_viewgroup/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/19_touch_viewgroup/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/19_touch_viewgroup/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/26_gradle_plugin/buildSrc/build.gradle:
--------------------------------------------------------------------------------
1 | repositories {
2 | google()
3 | jcenter()
4 |
5 | }
6 | dependencies {
7 | implementation 'com.android.tools.build:gradle:3.5.0-beta04'
8 | }
--------------------------------------------------------------------------------
/26_gradle_plugin/buildSrc/src/main/groovy/com/hencoder/plugin/HenCoderExtension.groovy:
--------------------------------------------------------------------------------
1 | package com.hencoder.plugin;
2 |
3 | class HenCoderExtension {
4 | String name = 'Zhukai'
5 | }
6 |
--------------------------------------------------------------------------------
/31_pluginnable/src/main/assets/apk/31_pluginnable_plugin-debug.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable/src/main/assets/apk/31_pluginnable_plugin-debug.apk
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable_plugin/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/33_annotation_processing/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/33_annotation_processing/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/33_annotation_processing/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/10_text_and_transformation/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/10_text_and_transformation/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/10_text_and_transformation/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/10_text_and_transformation/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/12_bitmap_drawable/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/12_bitmap_drawable/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/15_scalableimageview/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/15_scalableimageview/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/15_scalableimageview/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/15_scalableimageview/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/17_constraintlayout/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout_example/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/19_touch_viewgroup/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/19_touch_viewgroup/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/20_drag_nestedscroll/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/20_drag_nestedscroll/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/20_drag_nestedscroll/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/20_drag_nestedscroll/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/26_gradle_plugin/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/26_gradle_plugin/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/26_gradle_plugin/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/26_gradle_plugin/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable_plugin/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable_plugin/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable_plugin/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/33_annotation_processing/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/33_annotation_processing/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/10_text_and_transformation/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/15_scalableimageview/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout_example/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout_example/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout_example/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/20_drag_nestedscroll/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/22_thread_interaction/src/main/java/com/hencoder/a22_thread_interaction/TestDemo.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a22_thread_interaction;
2 |
3 | public interface TestDemo {
4 | void runTest();
5 | }
6 |
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/26_gradle_plugin/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable_plugin/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/31_pluginnable_plugin/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/33_annotation_processing/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/33_annotation_processing/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/drawable-v24/avatar_rengwuxian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/10_text_and_transformation/src/main/res/drawable-v24/avatar_rengwuxian.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/10_text_and_transformation/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/10_text_and_transformation/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/10_text_and_transformation/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout_example/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/18_motionlayout_example/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/33_annotation_processing/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/33_annotation_processing/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/33_annotation_processing/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/10_text_and_transformation/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/HEAD/10_text_and_transformation/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/21_thread_synchronization/src/main/java/com/hencoder/a20_thread_synchronization/TestDemo.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a20_thread_synchronization;
2 |
3 | public interface TestDemo {
4 | void runTest();
5 | }
6 |
--------------------------------------------------------------------------------
/32_hotfix/src/main/java/com/hencoder/a32_hotfix/Title.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a32_hotfix;
2 |
3 | public class Title {
4 | public String getTitle() {
5 | return "I'm an auto fix!";
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/shop/NormalShop.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.shop;
2 |
3 | public interface NormalShop {
4 | Object buy();
5 | float refund(Object item);
6 | }
7 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/kotlin/KShop.kt:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.kotlin
2 |
3 | import com.hencoder.a34_generics.fruit.Apple
4 |
5 | interface KShop {
6 | fun buy(): T
7 | }
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/shop/RepairableShop.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.shop;
2 |
3 | public interface RepairableShop {
4 | T buy();
5 | float refund(T item);
6 | }
7 |
--------------------------------------------------------------------------------
/22_thread_interaction/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'java-library'
2 |
3 | dependencies {
4 | implementation fileTree(dir: 'libs', include: ['*.jar'])
5 | }
6 |
7 | sourceCompatibility = "7"
8 | targetCompatibility = "7"
9 |
--------------------------------------------------------------------------------
/33_lib_annotations/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'java-library'
2 |
3 | dependencies {
4 | implementation fileTree(dir: 'libs', include: ['*.jar'])
5 | }
6 |
7 | sourceCompatibility = "7"
8 | targetCompatibility = "7"
9 |
--------------------------------------------------------------------------------
/07_kotlin_base/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | HenCoder
3 | 查看全部课程
4 | 只看回放课程
5 |
6 |
--------------------------------------------------------------------------------
/21_thread_synchronization/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'java-library'
2 |
3 | dependencies {
4 | implementation fileTree(dir: 'libs', include: ['*.jar'])
5 | }
6 |
7 | sourceCompatibility = "7"
8 | targetCompatibility = "7"
9 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/food/Eater.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.food;
2 |
3 | public class Eater {
4 | public void eat(T food) {
5 | food.eaten();
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/shop/FruitShop.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.shop;
2 |
3 | import com.hencoder.a34_generics.fruit.Fruit;
4 |
5 | public interface FruitShop extends Shop {
6 | }
--------------------------------------------------------------------------------
/30_arch/src/main/java/com/hencoder/a30_arch/data/DataCenter.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a30_arch.data;
2 |
3 | public class DataCenter {
4 | public static String[] getData() {
5 | return new String[] {"Hi", "Author"};
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/25_gradle/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/caches/build_file_checksums.ser
5 | /.idea/libraries
6 | /.idea/modules.xml
7 | /.idea/workspace.xml
8 | .DS_Store
9 | /build
10 | /captures
11 | .externalNativeBuild
12 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/fruit/Banana.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.fruit;
2 |
3 | public class Banana implements Fruit {
4 | @Override
5 | public float getWeight() {
6 | return 2;
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/07_kotlin_lesson/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #8F9DEE
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/24_io/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'java-library'
2 |
3 | dependencies {
4 | implementation fileTree(dir: 'libs', include: ['*.jar'])
5 | implementation 'com.squareup.okio:okio:2.2.2'
6 | }
7 |
8 | sourceCompatibility = "7"
9 | targetCompatibility = "7"
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/food/Animal.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.food;
2 |
3 | public class Animal implements Food {
4 | @Override
5 | public void eaten() {
6 | System.out.println("aaaa");
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/food/Human.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.food;
2 |
3 | public class Human extends Animal {
4 | @Override
5 | public void eaten() {
6 | System.out.println("我被吃了!");
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/food/Alligator.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.food;
2 |
3 | public class Alligator extends Animal {
4 | @Override
5 | public void eaten() {
6 | System.out.println("!");
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/09_drawing/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/13_layout/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/14_touch/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/30_arch/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/07_kotlin_base/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/11_animation/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/31_pluginnable/src/main/java/com/hencoder/a31_pluginnable/utils/Utils.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a31_pluginnable.utils;
2 |
3 | class Utils {
4 | Utils() {
5 | }
6 |
7 | void shout() {
8 | System.out.println("I'm shouting!!");
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/34_generics/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # HenCoderPlus 三期 Demo
2 | [HenCoder Plus](http://plus.hencoder.com) 第三期的课上代码分享
3 |
4 | > 提示:这是 [HenCoder Plus](http://plus.hencoder.com) 系列课程的课上代码分享,方便学员在写作业代码的过程中回顾查看。原则上并不限制任何学员以外的人查看,但项目内的代码很可能不适合直接阅读学习。如果你想学习,可以去 [hencoder.com](http://hencoder.com) 看更轻松的分享。
5 |
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/shop/SimShop.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.shop;
2 |
3 | import com.hencoder.a34_generics.sim.Sim;
4 |
5 | public interface SimShop extends Shop {
6 | S buySim(String name, String id);
7 | }
8 |
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/HenCoderMap.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics;
2 |
3 | public class HenCoderMap {
4 |
5 | public void put(K key, V value) {
6 | }
7 |
8 | public V get(K key) {
9 | return null;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri May 24 10:33:35 CST 2019
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
7 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/HenCoderShopList.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics;
2 |
3 | import com.hencoder.a34_generics.fruit.Apple;
4 | import com.hencoder.a34_generics.shop.Shop;
5 |
6 | public class HenCoderShopList extends HenCoderList> {
7 | }
8 |
--------------------------------------------------------------------------------
/25_gradle/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Tue Jun 04 20:13:22 CST 2019
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
7 |
--------------------------------------------------------------------------------
/26_gradle_plugin/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/caches
5 | /.idea/libraries
6 | /.idea/modules.xml
7 | /.idea/workspace.xml
8 | /.idea/navEditor.xml
9 | /.idea/assetWizardSettings.xml
10 | .DS_Store
11 | /build
12 | /captures
13 | .externalNativeBuild
14 | .cxx
15 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/food/HenCoderShopList.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.food;
2 |
3 | import com.hencoder.a34_generics.HenCoderList;
4 | import com.hencoder.a34_generics.shop.Shop;
5 |
6 | public class HenCoderShopList extends HenCoderList> {
7 | }
8 |
--------------------------------------------------------------------------------
/18_motionlayout/src/main/java/com/example/motionlayout/util/Float.kt:
--------------------------------------------------------------------------------
1 | package com.example.motionlayout.util
2 |
3 | import android.content.res.Resources
4 | import android.util.TypedValue
5 |
6 | fun Float.dp() = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, this, Resources.getSystem().displayMetrics)
--------------------------------------------------------------------------------
/26_gradle_plugin/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Thu Jun 06 19:40:01 CST 2019
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
7 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/caches
5 | /.idea/libraries
6 | /.idea/modules.xml
7 | /.idea/workspace.xml
8 | /.idea/navEditor.xml
9 | /.idea/assetWizardSettings.xml
10 | .DS_Store
11 | /build
12 | /captures
13 | .externalNativeBuild
14 | .idea/
15 | /17_constraintlayout/images
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/shop/NormalFruitShop.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.shop;
2 |
3 | import com.hencoder.a34_generics.fruit.Fruit;
4 |
5 | public interface NormalFruitShop extends NormalShop {
6 | Fruit buy();
7 |
8 | float refund(Fruit item);
9 | }
10 |
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/java/com/hencoder/a31_pluginnable_plugin/Utils.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a31_pluginnable_plugin;
2 |
3 | public class Utils {
4 | public Utils() {
5 | }
6 |
7 | public void shout() {
8 | System.out.println("I'm shouting from a plugin!!");
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/java/com/hencoder/a33_annotation_processing/InnerBinding.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a33_annotation_processing;
2 |
3 | public class InnerBinding {
4 | public static void bind(MainActivity activity) {
5 | activity.textView = activity.findViewById(R.id.textView);
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 | #FFD600
7 |
8 |
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/33_lib_processor/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'java-library'
2 |
3 | dependencies {
4 | implementation fileTree(dir: 'libs', include: ['*.jar'])
5 | implementation project(':33_lib_annotations')
6 | implementation 'com.squareup:javapoet:1.11.1'
7 | }
8 |
9 | sourceCompatibility = "7"
10 | targetCompatibility = "7"
11 |
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/07_kotlin_base/src/main/java/com/example/core/http/EntityCallback.java:
--------------------------------------------------------------------------------
1 | package com.example.core.http;
2 |
3 | import androidx.annotation.NonNull;
4 | import androidx.annotation.Nullable;
5 |
6 | public interface EntityCallback {
7 | void onSuccess(@NonNull T entity);
8 |
9 | void onFailure(@Nullable String message);
10 | }
11 |
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/25_gradle/app/src/release/java/com/hencoder/gradledemo/Utils.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.gradledemo;
2 |
3 | import android.app.Activity;
4 | import android.graphics.Color;
5 | import android.view.View;
6 | import android.view.ViewGroup;
7 |
8 | public class Utils {
9 | public static void drawBadge(Activity activity) {
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/drawable/ic_play_arrow_gray_32dp.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/fruit/Watermelon.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.fruit;
2 |
3 | import java.util.List;
4 |
5 | public class Watermelon implements Fruit {
6 | @Override
7 | public float getWeight() {
8 | return 1;
9 | }
10 |
11 | public boolean hasSeed() {
12 | return true;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/07_kotlin_lesson/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android-extensions'
3 | apply plugin: 'kotlin-android'
4 |
5 | android {
6 | compileSdkVersion 28
7 | defaultConfig {
8 | minSdkVersion 24
9 | targetSdkVersion 28
10 | }
11 | }
12 |
13 | dependencies {
14 | implementation project(':07_kotlin_base')
15 | }
16 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/shop/EaterShop.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.shop;
2 |
3 | import com.hencoder.a34_generics.food.Eater;
4 | import com.hencoder.a34_generics.food.Food;
5 | import com.hencoder.a34_generics.sim.Sim;
6 |
7 | import java.util.List;
8 |
9 | public interface EaterShop> extends Shop {
10 | }
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 | #CCCCCC
7 |
8 | #FFD600
9 |
10 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/fruit/Apple.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.fruit;
2 |
3 | import java.util.List;
4 |
5 | public class Apple implements Fruit {
6 | @Override
7 | public float getWeight() {
8 | return 1;
9 | }
10 |
11 | public void addMeToList(List super Apple> list) {
12 | list.add(this);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/09_drawing/src/main/java/com/hencoder/a09_drawing/Utils.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a09_drawing;
2 |
3 | import android.content.res.Resources;
4 | import android.util.TypedValue;
5 |
6 | public class Utils {
7 | public static float dp2px(float dp) {
8 | return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, Resources.getSystem().getDisplayMetrics());
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/07_kotlin_lesson/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/drawable/ic_home_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/shop/AppleShop.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.shop;
2 |
3 | import com.hencoder.a34_generics.fruit.Apple;
4 |
5 | public class AppleShop implements Shop {
6 | @Override
7 | public Apple buy() {
8 | return null;
9 | }
10 |
11 | @Override
12 | public float refund(Apple item) {
13 | return 0;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/13_layout/src/main/java/com/hencoder/a13_layout/Utils.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a13_layout;
2 |
3 | import android.content.res.Resources;
4 | import android.util.TypedValue;
5 |
6 | public class Utils {
7 | public static float dpToPixel(float dp) {
8 | return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp,
9 | Resources.getSystem().getDisplayMetrics());
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/kotlin/KotlinTest.kt:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.kotlin
2 |
3 | import com.hencoder.a34_generics.fruit.Apple
4 | import com.hencoder.a34_generics.fruit.Fruit
5 |
6 | class KotlinTest {
7 | fun main() {
8 | var fruits: Array = Array(10, {Apple()})
9 | var apples: Array = Array(10, {Fruit()})
10 | }
11 | }
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/layout/activity_go.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/18_motionlayout/src/main/java/com/example/motionlayout/SampleActivity.kt:
--------------------------------------------------------------------------------
1 | package com.example.motionlayout
2 |
3 | import androidx.appcompat.app.AppCompatActivity
4 | import android.os.Bundle
5 |
6 | class SampleActivity : AppCompatActivity() {
7 |
8 | override fun onCreate(savedInstanceState: Bundle?) {
9 | super.onCreate(savedInstanceState)
10 | setContentView(R.layout.activity_sample01)
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/33_lib_reflection/src/main/java/com/hencoder/a33_lib_reflection/BindView.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a33_lib_reflection;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | @Retention(RetentionPolicy.RUNTIME)
9 | @Target(ElementType.FIELD)
10 | public @interface BindView {
11 | int value();
12 | }
13 |
--------------------------------------------------------------------------------
/07_kotlin_lesson/src/main/res/menu/menu_lesson.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
--------------------------------------------------------------------------------
/33_lib_annotations/src/main/java/com/hencoder/a33_lib_annotations/BindView.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a33_lib_annotations;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | @Retention(RetentionPolicy.SOURCE)
9 | @Target(ElementType.FIELD)
10 | public @interface BindView {
11 | int value();
12 | }
13 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/ic_mail_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/drawable/ic_clear_gray_32dp.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/23_rxjava/src/main/java/com/hencoder/a23_rxjava/network/Api.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a23_rxjava.network;
2 |
3 | import com.hencoder.a23_rxjava.model.Repo;
4 |
5 | import java.util.List;
6 |
7 | import io.reactivex.Single;
8 | import retrofit2.http.GET;
9 | import retrofit2.http.Path;
10 |
11 | public interface Api {
12 |
13 | @GET("users/{username}/repos")
14 | Single> getRepos(@Path("username") String username);
15 | }
16 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/java/com/hencoder/a19_constraintlayout/LinearActivity.kt:
--------------------------------------------------------------------------------
1 | package com.hencoder.a19_constraintlayout
2 |
3 | import androidx.appcompat.app.AppCompatActivity
4 | import android.os.Bundle
5 |
6 | class LinearActivity : AppCompatActivity() {
7 |
8 | override fun onCreate(savedInstanceState: Bundle?) {
9 | super.onCreate(savedInstanceState)
10 | setContentView(R.layout.activity_linear)
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/13_layout/src/main/java/com/hencoder/a13_layout/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a13_layout;
2 |
3 | import android.os.Bundle;
4 |
5 | import androidx.appcompat.app.AppCompatActivity;
6 |
7 | public class MainActivity extends AppCompatActivity {
8 |
9 | @Override
10 | protected void onCreate(Bundle savedInstanceState) {
11 | super.onCreate(savedInstanceState);
12 | setContentView(R.layout.activity_main);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/drawable/ic_dashboard_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/09_drawing/src/main/java/com/hencoder/a09_drawing/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a09_drawing;
2 |
3 | import android.os.Bundle;
4 |
5 | import androidx.appcompat.app.AppCompatActivity;
6 |
7 | public class MainActivity extends AppCompatActivity {
8 |
9 | @Override
10 | protected void onCreate(Bundle savedInstanceState) {
11 | super.onCreate(savedInstanceState);
12 | setContentView(R.layout.activity_main);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/14_touch/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/java/com/hencoder/a19_constraintlayout/CircularReveal.kt:
--------------------------------------------------------------------------------
1 | package com.hencoder.a19_constraintlayout
2 |
3 | import androidx.appcompat.app.AppCompatActivity
4 | import android.os.Bundle
5 |
6 | class CircularReveal : AppCompatActivity() {
7 |
8 | override fun onCreate(savedInstanceState: Bundle?) {
9 | super.onCreate(savedInstanceState)
10 | setContentView(R.layout.activity_circular_reveal)
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/java/com/hencoder/a19_constraintlayout/DimensionRatio.kt:
--------------------------------------------------------------------------------
1 | package com.hencoder.a19_constraintlayout
2 |
3 | import androidx.appcompat.app.AppCompatActivity
4 | import android.os.Bundle
5 |
6 | class DimensionRatio : AppCompatActivity() {
7 |
8 | override fun onCreate(savedInstanceState: Bundle?) {
9 | super.onCreate(savedInstanceState)
10 | setContentView(R.layout.activity_dimension_ratio)
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/java/com/hencoder/a19_constraintlayout/GuideLineActivity.kt:
--------------------------------------------------------------------------------
1 | package com.hencoder.a19_constraintlayout
2 |
3 | import androidx.appcompat.app.AppCompatActivity
4 | import android.os.Bundle
5 |
6 | class GuideLineActivity : AppCompatActivity() {
7 |
8 | override fun onCreate(savedInstanceState: Bundle?) {
9 | super.onCreate(savedInstanceState)
10 | setContentView(R.layout.activity_guide_line)
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/30_arch/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/09_drawing/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/11_animation/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/13_layout/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/34_generics/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/07_kotlin_base/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/07_kotlin_lesson/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/16_multi_touch/src/main/java/com/hencoder/a16_multi_touch/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a16_multi_touch;
2 |
3 | import android.os.Bundle;
4 |
5 | import androidx.appcompat.app.AppCompatActivity;
6 |
7 | public class MainActivity extends AppCompatActivity {
8 |
9 | @Override
10 | protected void onCreate(Bundle savedInstanceState) {
11 | super.onCreate(savedInstanceState);
12 | setContentView(R.layout.activity_main);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/java/com/hencoder/a12_bitmap_drawable/view/BigCandleView.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a12_bitmap_drawable.view;
2 |
3 | import android.content.Context;
4 | import android.util.AttributeSet;
5 | import android.view.View;
6 |
7 | import androidx.annotation.Nullable;
8 |
9 | public class BigCandleView extends View {
10 | public BigCandleView(Context context, @Nullable AttributeSet attrs) {
11 | super(context, attrs);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/drawable/ic_bookmark_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/java/com/hencoder/a19_constraintlayout/ConstraintLayoutSample.kt:
--------------------------------------------------------------------------------
1 | package com.hencoder.a19_constraintlayout
2 |
3 | import androidx.appcompat.app.AppCompatActivity
4 | import android.os.Bundle
5 |
6 | class ConstraintLayoutSample : AppCompatActivity() {
7 |
8 | override fun onCreate(savedInstanceState: Bundle?) {
9 | super.onCreate(savedInstanceState)
10 | setContentView(R.layout.activity_constraint_layout_sample)
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/java/com/hencoder/a19_touch_viewgroup/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a19_touch_viewgroup;
2 |
3 | import androidx.appcompat.app.AppCompatActivity;
4 |
5 | import android.os.Bundle;
6 |
7 | public class MainActivity extends AppCompatActivity {
8 |
9 | @Override
10 | protected void onCreate(Bundle savedInstanceState) {
11 | super.onCreate(savedInstanceState);
12 | setContentView(R.layout.activity_main);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/java/com/hencoder/a15_scalableimageview/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a15_scalableimageview;
2 |
3 | import android.os.Bundle;
4 |
5 | import androidx.appcompat.app.AppCompatActivity;
6 |
7 | public class MainActivity extends AppCompatActivity {
8 |
9 | @Override
10 | protected void onCreate(Bundle savedInstanceState) {
11 | super.onCreate(savedInstanceState);
12 | setContentView(R.layout.activity_main);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/ic_play_circle_filled_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/18_motionlayout/src/test/java/com/example/motionlayout/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.example.motionlayout
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/drawable/ic_bookmark_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/test/java/com/example/youtube/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.example.youtube
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/shop/Shop.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.shop;
2 |
3 | import com.hencoder.a34_generics.sim.Sim;
4 |
5 | import java.util.List;
6 |
7 | public interface Shop {
8 | T buy();
9 | float refund(T item);
10 |
11 | // void someMethod(E item);
12 | // void addToList(R item, List super R> list);
13 | // Shop
14 | // Apple buy();
15 | // float refund(Apple item);
16 | }
17 |
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/java/com/hencoder/a12_bitmap_drawable/Utils.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a12_bitmap_drawable;
2 |
3 | import android.content.res.Resources;
4 | import android.graphics.Bitmap;
5 | import android.graphics.BitmapFactory;
6 | import android.util.TypedValue;
7 |
8 | public class Utils {
9 | public static float dp2px(float dp) {
10 | return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, Resources.getSystem().getDisplayMetrics());
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/java/com/hencoder/a20_drag_nestedscroll/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a20_drag_nestedscroll;
2 |
3 | import androidx.appcompat.app.AppCompatActivity;
4 |
5 | import android.os.Bundle;
6 |
7 | public class MainActivity extends AppCompatActivity {
8 |
9 | @Override
10 | protected void onCreate(Bundle savedInstanceState) {
11 | super.onCreate(savedInstanceState);
12 | setContentView(R.layout.nested_scalable_image_view);
13 | }
14 | }
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/java/com/hencoder/a31_pluginnable_plugin/SecondActivity.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a31_pluginnable_plugin;
2 |
3 | import androidx.appcompat.app.AppCompatActivity;
4 |
5 | import android.os.Bundle;
6 |
7 | public class SecondActivity extends AppCompatActivity {
8 |
9 | @Override
10 | protected void onCreate(Bundle savedInstanceState) {
11 | super.onCreate(savedInstanceState);
12 | setContentView(R.layout.activity_main);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/25_gradle/app/src/main/java/com/hencoder/gradledemo/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.gradledemo;
2 |
3 | import android.os.Bundle;
4 |
5 | import androidx.appcompat.app.AppCompatActivity;
6 |
7 | public class MainActivity extends AppCompatActivity {
8 |
9 | @Override
10 | protected void onCreate(Bundle savedInstanceState) {
11 | super.onCreate(savedInstanceState);
12 | setContentView(R.layout.activity_main);
13 |
14 | Utils.drawBadge(this);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/HenCoderList.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics;
2 |
3 | import java.util.Arrays;
4 |
5 | public class HenCoderList {
6 | Object[] instances = new Object[0];
7 |
8 | public T get(int index) {
9 | return (T) instances[index];
10 | }
11 |
12 | public void add(T instance) {
13 | instances = Arrays.copyOf(instances, instances.length + 1);
14 | instances[instances.length - 1] = instance;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/java/com/hencoder/a10_text_and_transformation/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a10_text_and_transformation;
2 |
3 | import android.os.Bundle;
4 |
5 | import androidx.appcompat.app.AppCompatActivity;
6 |
7 | public class MainActivity extends AppCompatActivity {
8 |
9 | @Override
10 | protected void onCreate(Bundle savedInstanceState) {
11 | super.onCreate(savedInstanceState);
12 | setContentView(R.layout.activity_main);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/30_arch/src/test/java/com/hencoder/a30_arch/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a30_arch;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/33_lib/src/test/java/com/hencoder/a33_lib/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a33_lib;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/13_layout/src/test/java/com/hencoder/a13_layout/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a13_layout;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/14_touch/src/test/java/com/hencoder/a14_touch/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a14_touch;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/17_constraintlayout/src/test/java/com/hencoder/a19_constraintlayout/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.hencoder.a19_constraintlayout
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/23_rxjava/src/test/java/com/hencoder/a23_rxjava/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a23_rxjava;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/32_hotfix/src/test/java/com/hencoder/a32_hotfix/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a32_hotfix;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/09_drawing/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/09_drawing/src/test/java/com/hencoder/a09_drawing/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a09_drawing;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/25_gradle/app/src/test/java/com/hencoder/gradledemo/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.gradledemo;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/25_gradle/library1/src/test/java/com/hencoder/library1/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.library1;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/25_gradle/library2/src/test/java/com/hencoder/library2/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.library2;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/11_animation/src/test/java/com/hencoder/a11_animation/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a11_animation;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/34_generics/src/test/java/com/hencoder/a34_generics/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/16_multi_touch/src/test/java/com/hencoder/a16_multi_touch/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a16_multi_touch;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/31_pluginnable/src/test/java/com/hencoder/a31_pluginnable/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a31_pluginnable;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/test/java/com/hencoder/a26_gradle_plugin/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a26_gradle_plugin;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/33_lib_reflection/src/test/java/com/hencoder/a33_lib_reflection/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a33_lib_reflection;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/test/java/com/hencoder/a12_bitmap_drawable/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a12_bitmap_drawable;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/test/java/com/hencoder/a19_touch_viewgroup/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a19_touch_viewgroup;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/30_arch/src/main/java/com/hencoder/a30_arch/mvp/Presenter.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a30_arch.mvp;
2 |
3 | import com.hencoder.a30_arch.data.DataCenter;
4 |
5 | public class Presenter {
6 | IView iView;
7 |
8 | Presenter(IView iView) {
9 | this.iView = iView;
10 | }
11 |
12 | public void load() {
13 | String[] data = DataCenter.getData();
14 | iView.showData(data[0], data[1]);
15 | }
16 |
17 | interface IView {
18 | void showData(String datum0, String datum1);
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/15_scalableimageview/src/test/java/com/hencoder/a15_scalableimageview/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a15_scalableimageview;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/ic_save_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/java/com/example/youtube/YoutubeActivity.kt:
--------------------------------------------------------------------------------
1 | package com.example.youtube
2 |
3 | import androidx.appcompat.app.AppCompatActivity
4 | import android.os.Bundle
5 |
6 | class YoutubeActivity : AppCompatActivity() {
7 |
8 | // 过渡动画
9 | /**
10 | * View 动画 API 1
11 | * 属性动画 API 11
12 | * 过渡动画 API 18
13 | */
14 | override fun onCreate(savedInstanceState: Bundle?) {
15 | super.onCreate(savedInstanceState)
16 | setContentView(R.layout.activity_youtube)
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/test/java/com/hencoder/a20_drag_nestedscroll/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a20_drag_nestedscroll;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/test/java/com/hencoder/a31_pluginnable_plugin/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a31_pluginnable_plugin;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/33_annotation_processing/src/test/java/com/hencoder/a33_annotation_processing/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a33_annotation_processing;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/ic_favorite_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/drawable/ic_heart_24dp.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
10 |
--------------------------------------------------------------------------------
/10_text_and_transformation/src/test/java/com/hencoder/a10_text_and_transformation/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a10_text_and_transformation;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/drawable/ic_notifications_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/layout/drag_up_down.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/25_gradle/app/src/debug/java/com/hencoder/gradledemo/Utils.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.gradledemo;
2 |
3 | import android.app.Activity;
4 | import android.graphics.Color;
5 | import android.view.View;
6 | import android.view.ViewGroup;
7 |
8 | public class Utils {
9 | public static void drawBadge(Activity activity) {
10 | ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView();
11 | View badge = new View(activity);
12 | badge.setBackgroundColor(Color.GREEN);
13 | decorView.addView(badge, 200, 100);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/25_gradle/app/src/internal/java/com/hencoder/gradledemo/Utils.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.gradledemo;
2 |
3 | import android.app.Activity;
4 | import android.graphics.Color;
5 | import android.view.View;
6 | import android.view.ViewGroup;
7 |
8 | public class Utils {
9 | public static void drawBadge(Activity activity) {
10 | ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView();
11 | View badge = new View(activity);
12 | badge.setBackgroundColor(Color.YELLOW);
13 | decorView.addView(badge, 200, 100);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/22_thread_interaction/src/main/java/com/hencoder/a22_thread_interaction/ThreadInteractionDemo.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a22_thread_interaction;
2 |
3 | public class ThreadInteractionDemo implements TestDemo {
4 |
5 | @Override
6 | public void runTest() {
7 | Thread thread = new Thread() {
8 | @Override
9 | public void run() {
10 | for (int i = 0; i < 1_000_000; i++) {
11 | System.out.println("number: " + i);
12 | }
13 | }
14 | };
15 | thread.start();
16 | }
17 | }
--------------------------------------------------------------------------------
/07_kotlin_app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 | apply plugin: 'kotlin-android-extensions'
3 | apply plugin: 'kotlin-android'
4 |
5 | android {
6 | compileSdkVersion 28
7 | defaultConfig {
8 | applicationId "com.example.hencoder"
9 | minSdkVersion 24
10 | targetSdkVersion 28
11 | versionCode 1
12 | versionName "1.0"
13 | }
14 | }
15 |
16 | dependencies {
17 | implementation fileTree(dir: 'libs', include: ['*.jar'])
18 | implementation project(':07_kotlin_lesson')
19 | implementation project(':07_kotlin_base')
20 | }
--------------------------------------------------------------------------------
/14_touch/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
15 |
--------------------------------------------------------------------------------
/21_thread_synchronization/src/main/java/com/hencoder/a20_thread_synchronization/SingleMan.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a20_thread_synchronization;
2 |
3 | class SingleMan {
4 | private static volatile SingleMan sInstance;
5 |
6 | private SingleMan() {
7 | }
8 |
9 | static SingleMan newInstance() {
10 | if (sInstance == null) {
11 | synchronized (SingleMan.class) {
12 | if (sInstance == null) {
13 | sInstance = new SingleMan();
14 | }
15 | }
16 | }
17 | return sInstance;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
12 |
13 |
--------------------------------------------------------------------------------
/07_kotlin_base/src/main/java/com/example/core/BaseApplication.java:
--------------------------------------------------------------------------------
1 | package com.example.core;
2 |
3 | import android.app.Application;
4 | import android.content.Context;
5 |
6 | import androidx.annotation.NonNull;
7 |
8 | public class BaseApplication extends Application {
9 |
10 | private static Context currentApplication;
11 |
12 | @NonNull
13 | public static Context currentApplication() {
14 | return currentApplication;
15 | }
16 |
17 | @Override
18 | protected void attachBaseContext(Context base) {
19 | super.attachBaseContext(base);
20 | currentApplication = this;
21 | }
22 | }
--------------------------------------------------------------------------------
/34_generics/src/main/java/com/hencoder/a34_generics/shop/UnicomSimShop.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.shop;
2 |
3 | import com.hencoder.a34_generics.fruit.Apple;
4 | import com.hencoder.a34_generics.sim.ChinaUnicomSim;
5 |
6 | public class UnicomSimShop implements SimShop {
7 | @Override
8 | public ChinaUnicomSim buySim(String name, String id) {
9 | return new ChinaUnicomSim();
10 | }
11 |
12 | @Override
13 | public Apple buy() {
14 | return new Apple();
15 | }
16 |
17 | @Override
18 | public float refund(Apple item) {
19 | return 10;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/java/com/hencoder/a19_constraintlayout/FlowActivity.kt:
--------------------------------------------------------------------------------
1 | package com.hencoder.a19_constraintlayout
2 |
3 | import androidx.appcompat.app.AppCompatActivity
4 | import android.os.Bundle
5 | import android.view.View
6 | import androidx.constraintlayout.helper.widget.Flow
7 | import androidx.constraintlayout.helper.widget.Flow.VERTICAL
8 | import androidx.constraintlayout.helper.widget.Flow.WRAP_NONE
9 |
10 | class FlowActivity : AppCompatActivity() {
11 |
12 | override fun onCreate(savedInstanceState: Bundle?) {
13 | super.onCreate(savedInstanceState)
14 | setContentView(R.layout.activity_flow)
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/22_thread_interaction/src/main/java/com/hencoder/a22_thread_interaction/Main.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a22_thread_interaction;
2 |
3 | public class Main {
4 | public static void main(String[] args) {
5 | runThreadInteractionDemo();
6 | // runWaitDemo();
7 | // runCustomizableThreadDemo();
8 | }
9 |
10 | static void runThreadInteractionDemo() {
11 | new ThreadInteractionDemo().runTest();
12 | }
13 |
14 | static void runWaitDemo() {
15 | new WaitDemo().runTest();
16 |
17 | }
18 |
19 | static void runCustomizableThreadDemo() {
20 | new CustomizableThreadDemo().runTest();
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/25_gradle/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 |
5 | repositories {
6 | google()
7 | jcenter()
8 | }
9 | dependencies {
10 | classpath 'com.android.tools.build:gradle:3.5.0-beta04'
11 |
12 | // NOTE: Do not place your application dependencies here; they belong
13 | // in the individual module build.gradle files
14 | }
15 | }
16 |
17 | allprojects {
18 | repositories {
19 | google()
20 | jcenter()
21 | }
22 | }
23 |
24 | task clean(type: Delete) {
25 | delete rootProject.buildDir
26 | }
--------------------------------------------------------------------------------
/07_kotlin_base/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android-extensions'
3 | apply plugin: 'kotlin-android'
4 |
5 |
6 | android {
7 | compileSdkVersion 28
8 | defaultConfig {
9 | minSdkVersion 24
10 | targetSdkVersion 28
11 | }
12 | }
13 |
14 | dependencies {
15 | api fileTree(dir: 'libs', include: ['*.jar'])
16 | api 'androidx.appcompat:appcompat:1.0.0-beta01'
17 |
18 | api "com.google.code.gson:gson:2.8.5"
19 | api 'com.squareup.okhttp3:okhttp:3.9.0'
20 | api 'androidx.recyclerview:recyclerview:1.0.0'
21 | api "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
22 | }
23 |
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Transition Framework
3 |
4 | 黑客帝国 The Matrix (1999)
5 | \n类型: 动作 / 科幻
6 | \n语言: 英语
7 | \n上映日期: 1999-03-31(美国)
8 | \n片长: 136分钟
9 | 电影简介
10 |
11 | 不久的将来,网络黑客尼奥(基奴李维斯 饰)对这个看似正常的现实世界产生了怀疑。他结识了黑客崔妮蒂(凯莉·安·摩丝 饰),并见到了黑客组织的首领墨菲斯(劳伦斯·菲什伯恩 饰)。墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。
12 | \n可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?如何才能打败那些超人一样的特勤?尼奥是不是人类的希望?这是黑客的帝国,程序和代码欢迎大家的到来。
13 |
14 |
--------------------------------------------------------------------------------
/14_touch/src/main/java/com/hencoder/a14_touch/view/TouchView.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a14_touch.view;
2 |
3 | import android.content.Context;
4 | import android.util.AttributeSet;
5 | import android.view.MotionEvent;
6 | import android.view.View;
7 |
8 | import androidx.annotation.Nullable;
9 |
10 | public class TouchView extends View {
11 | public TouchView(Context context, @Nullable AttributeSet attrs) {
12 | super(context, attrs);
13 | }
14 |
15 | @Override
16 | public boolean onTouchEvent(MotionEvent event) {
17 | if (event.getActionMasked() == MotionEvent.ACTION_UP) {
18 | performClick();
19 | }
20 | return true;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/java/com/example/youtube/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.example.youtube
2 |
3 | import android.content.Intent
4 | import androidx.appcompat.app.AppCompatActivity
5 | import android.os.Bundle
6 | import android.view.View
7 | import android.widget.Button
8 |
9 | class MainActivity : AppCompatActivity() {
10 |
11 | override fun onCreate(savedInstanceState: Bundle?) {
12 | super.onCreate(savedInstanceState)
13 | setContentView(R.layout.activity_main)
14 | }
15 |
16 | fun onClick(view: View) {
17 | val target = "com.example.youtube.${(view as Button).text}"
18 | startActivity(Intent(this, Class.forName(target)))
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/26_gradle_plugin/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | google()
6 | jcenter()
7 |
8 | }
9 | dependencies {
10 | classpath 'com.android.tools.build:gradle:3.5.0-beta04'
11 |
12 | // NOTE: Do not place your application dependencies here; they belong
13 | // in the individual module build.gradle files
14 | }
15 | }
16 |
17 | allprojects {
18 | repositories {
19 | google()
20 | jcenter()
21 |
22 | }
23 | }
24 |
25 | task clean(type: Delete) {
26 | delete rootProject.buildDir
27 | }
28 |
--------------------------------------------------------------------------------
/22_thread_interaction/src/main/java/com/hencoder/a22_thread_interaction/CustomizableThreadDemo.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a22_thread_interaction;
2 |
3 | public class CustomizableThreadDemo implements TestDemo {
4 | private CustomizableThread thread = new CustomizableThread();
5 |
6 | @Override
7 | public void runTest() {
8 | thread.start();
9 | try {
10 | Thread.sleep(2000);
11 | } catch (InterruptedException e) {
12 | e.printStackTrace();
13 | }
14 | }
15 |
16 | class CustomizableThread extends Thread {
17 | @Override
18 | public void run() {
19 | while (true) {
20 | }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/26_gradle_plugin/buildSrc/src/main/groovy/com/hencoder/plugin/HenCoder.groovy:
--------------------------------------------------------------------------------
1 | package com.hencoder.plugin
2 |
3 | import com.android.build.gradle.BaseExtension
4 | import org.gradle.api.Plugin
5 | import org.gradle.api.Project
6 |
7 | class HenCoder implements Plugin {
8 | @Override
9 | void apply(Project project) {
10 | def extension = project.extensions.create('hencoder', HenCoderExtension)
11 | project.afterEvaluate {
12 | println "Hi ${extension.name}"
13 | }
14 | def transform = new HenCoderTransform()
15 | def baseExtension = project.extensions.getByType(BaseExtension)
16 | baseExtension.registerTransform(transform)
17 | }
18 | }
19 |
--------------------------------------------------------------------------------