├── .gitignore
├── 07_kotlin_app
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── example
│ │ └── app
│ │ ├── MainActivity.java
│ │ ├── entity
│ │ └── User.java
│ │ └── widget
│ │ └── CodeView.java
│ └── res
│ ├── drawable-v24
│ └── ic_launcher_foreground.xml
│ ├── drawable
│ └── ic_launcher_background.xml
│ ├── layout
│ └── activity_main.xml
│ ├── mipmap-hdpi
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
│ ├── mipmap-mdpi
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
│ ├── mipmap-xhdpi
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
│ ├── mipmap-xxhdpi
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
│ └── mipmap-xxxhdpi
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
├── 07_kotlin_base
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── example
│ │ └── core
│ │ ├── BaseApplication.java
│ │ ├── BaseView.java
│ │ ├── BaseViewHolder.java
│ │ ├── http
│ │ ├── EntityCallback.java
│ │ └── HttpClient.java
│ │ └── utils
│ │ ├── CacheUtils.java
│ │ └── Utils.java
│ └── res
│ └── values
│ ├── colors.xml
│ ├── strings.xml
│ └── styles.xml
├── 07_kotlin_lesson
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── example
│ │ └── lesson
│ │ ├── LessonActivity.java
│ │ ├── LessonAdapter.java
│ │ ├── LessonPresenter.java
│ │ └── entity
│ │ └── Lesson.java
│ └── res
│ ├── layout
│ ├── activity_lesson.xml
│ └── item_lesson.xml
│ ├── menu
│ └── menu_lesson.xml
│ └── values
│ ├── colors.xml
│ └── styles.xml
├── 09_drawing
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a09_drawing
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a09_drawing
│ │ │ ├── MainActivity.java
│ │ │ ├── Utils.java
│ │ │ └── view
│ │ │ ├── AvatarView.java
│ │ │ ├── DashBoard.java
│ │ │ └── PieChart.java
│ └── res
│ │ ├── drawable-v24
│ │ ├── avatar_rengwuxian.png
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ └── activity_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a09_drawing
│ └── ExampleUnitTest.java
├── 10_text_and_transformation
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a10_text_and_transformation
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── assets
│ │ └── Quicksand-Regular.ttf
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a10_text_and_transformation
│ │ │ ├── MainActivity.java
│ │ │ ├── Utils.java
│ │ │ └── view
│ │ │ ├── CameraView.java
│ │ │ ├── ImageTextView.java
│ │ │ └── SportView.java
│ └── res
│ │ ├── drawable-v24
│ │ ├── avatar_rengwuxian.png
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ └── activity_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a10_text_and_transformation
│ └── ExampleUnitTest.java
├── 11_animation
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a11_animation
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a11_animation
│ │ │ ├── MainActivity.java
│ │ │ ├── ProvinceUtil.java
│ │ │ ├── Utils.java
│ │ │ └── view
│ │ │ ├── CircleView.java
│ │ │ ├── FancyView.java
│ │ │ ├── PointView.java
│ │ │ └── ProvinceView.java
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ ├── avatar_rengwuxian.png
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ └── activity_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a11_animation
│ └── ExampleUnitTest.java
├── 12_bitmap_drawable
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a12_bitmap_drawable
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a12_bitmap_drawable
│ │ │ ├── MainActivity.java
│ │ │ ├── Utils.java
│ │ │ ├── drawable
│ │ │ ├── CandleDrawable.java
│ │ │ └── MeshDrawable.java
│ │ │ └── view
│ │ │ ├── BigCandleView.java
│ │ │ ├── DrawableView.java
│ │ │ ├── MaterialEditText.java
│ │ │ └── SmallCandleView.java
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ └── activity_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── attrs.xml
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a12_bitmap_drawable
│ └── ExampleUnitTest.java
├── 13_layout
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a13_layout
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a13_layout
│ │ │ ├── MainActivity.java
│ │ │ ├── Utils.java
│ │ │ └── view
│ │ │ ├── CircleView.java
│ │ │ ├── ColoredTextView.java
│ │ │ ├── OneHundredView.java
│ │ │ ├── SquareImageView.java
│ │ │ └── TagLayout.java
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ ├── avatar_rengwuxian.png
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ └── activity_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a13_layout
│ └── ExampleUnitTest.java
├── 14_touch
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a14_touch
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a14_touch
│ │ │ ├── MainActivity.java
│ │ │ └── view
│ │ │ ├── TouchLayout.java
│ │ │ └── TouchView.java
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ └── activity_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a14_touch
│ └── ExampleUnitTest.java
├── 15_scalableimageview
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a15_scalableimageview
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a15_scalableimageview
│ │ │ ├── MainActivity.java
│ │ │ ├── Utils.java
│ │ │ └── view
│ │ │ └── ScalableImageView.java
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ ├── avatar_rengwuxian.png
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ └── activity_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a15_scalableimageview
│ └── ExampleUnitTest.java
├── 16_multi_touch
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a16_multi_touch
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a16_multi_touch
│ │ │ ├── MainActivity.java
│ │ │ ├── Utils.java
│ │ │ └── view
│ │ │ ├── MultiTouchView1.java
│ │ │ ├── MultiTouchView2.java
│ │ │ └── MultiTouchView3.java
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ ├── avatar_rengwuxian.png
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ └── activity_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a16_multi_touch
│ └── ExampleUnitTest.java
├── 17_constraintlayout
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a19_constraintlayout
│ │ └── ExampleInstrumentedTest.kt
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a19_constraintlayout
│ │ │ ├── CircularPositioning.kt
│ │ │ ├── CircularReveal.kt
│ │ │ ├── CircularRevealHelper.kt
│ │ │ ├── ConstraintLayoutSample.kt
│ │ │ ├── ConstraintSetActivity.kt
│ │ │ ├── DimensionRatio.kt
│ │ │ ├── FlowActivity.kt
│ │ │ ├── GuideLineActivity.kt
│ │ │ ├── Linear.kt
│ │ │ ├── LinearActivity.kt
│ │ │ ├── MainActivity.kt
│ │ │ └── PlaceHolder.kt
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ ├── earth.png
│ │ ├── ic_favorite_black_24dp.xml
│ │ ├── ic_launcher_background.xml
│ │ ├── ic_mail_black_24dp.xml
│ │ ├── ic_play_circle_filled_black_24dp.xml
│ │ ├── ic_save_black_24dp.xml
│ │ ├── moon.png
│ │ ├── qq.png
│ │ ├── qzone.png
│ │ ├── sun.png
│ │ ├── twitter.png
│ │ ├── wechat.png
│ │ ├── wechat_friend.png
│ │ └── weibo.png
│ │ ├── layout
│ │ ├── activity_circular_positioning.xml
│ │ ├── activity_circular_reveal.xml
│ │ ├── activity_constraint_end.xml
│ │ ├── activity_constraint_layout_sample.xml
│ │ ├── activity_constraint_start.xml
│ │ ├── activity_dimension_ratio.xml
│ │ ├── activity_flow.xml
│ │ ├── activity_guide_line.xml
│ │ ├── activity_linear.xml
│ │ ├── activity_main.xml
│ │ └── activity_place_holder.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── attrs.xml
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a19_constraintlayout
│ └── ExampleUnitTest.kt
├── 18_motionlayout
├── .gitignore
├── CycleEditor.jar
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── example
│ │ └── motionlayout
│ │ └── ExampleInstrumentedTest.kt
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── example
│ │ │ └── motionlayout
│ │ │ ├── ConstraintSet.kt
│ │ │ ├── Go.kt
│ │ │ ├── MainActivity.kt
│ │ │ ├── ObjectAnimator2Activity.kt
│ │ │ ├── ObjectAnimatorActivity.kt
│ │ │ ├── SampleActivity.kt
│ │ │ ├── WithCoordinator.kt
│ │ │ ├── WithDrawer.kt
│ │ │ └── util
│ │ │ └── Float.kt
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ ├── avatar.jpg
│ │ ├── film_cover.webp
│ │ ├── ic_bookmark_24dp.xml
│ │ ├── ic_heart_24dp.xml
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ ├── activity_constraint_end.xml
│ │ ├── activity_constraint_start.xml
│ │ ├── activity_go.xml
│ │ ├── activity_main.xml
│ │ ├── activity_object_animator.xml
│ │ ├── activity_object_animator2.xml
│ │ ├── activity_sample01.xml
│ │ ├── activity_with_coordinator.xml
│ │ ├── activity_with_drawer.xml
│ │ ├── go_end.xml
│ │ └── go_start.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ │ └── xml
│ │ ├── coordinator.xml
│ │ ├── drawer.xml
│ │ └── sample01.xml
│ └── test
│ └── java
│ └── com
│ └── example
│ └── motionlayout
│ └── ExampleUnitTest.kt
├── 18_motionlayout_example
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── example
│ │ └── youtube
│ │ └── ExampleInstrumentedTest.kt
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── example
│ │ │ └── youtube
│ │ │ ├── HenCoderActivity.kt
│ │ │ ├── MainActivity.kt
│ │ │ ├── MotionLayoutActivity.kt
│ │ │ └── YoutubeActivity.kt
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ ├── cat_1.jpeg
│ │ ├── film_cover.webp
│ │ ├── ic_bookmark_24dp.xml
│ │ ├── ic_clear_gray_32dp.xml
│ │ ├── ic_dashboard_black_24dp.xml
│ │ ├── ic_home_black_24dp.xml
│ │ ├── ic_launcher_background.xml
│ │ ├── ic_notifications_black_24dp.xml
│ │ └── ic_play_arrow_gray_32dp.xml
│ │ ├── layout
│ │ ├── activity_hen_coder.xml
│ │ ├── activity_main.xml
│ │ ├── activity_motion_layout.xml
│ │ └── activity_youtube.xml
│ │ ├── menu
│ │ └── bottom_nav_menu.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ │ └── xml
│ │ ├── motion_scene_hencoder.xml
│ │ ├── scene_motion_layout.xml
│ │ └── scene_youtube.xml
│ └── test
│ └── java
│ └── com
│ └── example
│ └── youtube
│ └── ExampleUnitTest.kt
├── 19_touch_viewgroup
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a19_touch_viewgroup
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a19_touch_viewgroup
│ │ │ ├── MainActivity.java
│ │ │ └── view
│ │ │ └── TwoPager.java
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ └── activity_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a19_touch_viewgroup
│ └── ExampleUnitTest.java
├── 20_drag_nestedscroll
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a20_drag_nestedscroll
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a20_drag_nestedscroll
│ │ │ ├── MainActivity.java
│ │ │ ├── Utils.java
│ │ │ └── view
│ │ │ ├── drag
│ │ │ ├── DragHelperGridView.java
│ │ │ ├── DragListenerGridView.java
│ │ │ ├── DragToCollectLayout.java
│ │ │ └── DragUpDownLayout.java
│ │ │ └── nested_scroll
│ │ │ └── NestedScalableImageView.java
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ ├── avatar_rengwuxian.png
│ │ ├── google_logo.jpg
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ ├── drag_helper_grid_view.xml
│ │ ├── drag_listener_grid_view.xml
│ │ ├── drag_to_collect.xml
│ │ ├── drag_up_down.xml
│ │ ├── nested_scalable_image_view.xml
│ │ └── nested_scroll_view.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a20_drag_nestedscroll
│ └── ExampleUnitTest.java
├── 21_thread_synchronization
├── .gitignore
├── build.gradle
└── src
│ └── main
│ └── java
│ └── com
│ └── hencoder
│ └── a20_thread_synchronization
│ ├── Main.java
│ ├── ReadWriteLockDemo.java
│ ├── SingleMan.java
│ ├── Synchronized1Demo.java
│ ├── Synchronized2Demo.java
│ ├── Synchronized3Demo.java
│ └── TestDemo.java
├── 22_thread_interaction
├── .gitignore
├── build.gradle
└── src
│ └── main
│ └── java
│ └── com
│ └── hencoder
│ └── a22_thread_interaction
│ ├── CustomizableThreadDemo.java
│ ├── Main.java
│ ├── TestDemo.java
│ ├── ThreadInteractionDemo.java
│ └── WaitDemo.java
├── 23_rxjava
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a23_rxjava
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a23_rxjava
│ │ │ ├── MainActivity.java
│ │ │ ├── model
│ │ │ └── Repo.java
│ │ │ └── network
│ │ │ └── Api.java
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ └── activity_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a23_rxjava
│ └── ExampleUnitTest.java
├── 24_io
├── .gitignore
├── build.gradle
├── src
│ └── main
│ │ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a24_io
│ │ └── Main.java
├── text.txt
└── text_copy.txt
├── 25_gradle
├── .gitignore
├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ ├── src
│ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── hencoder
│ │ │ │ └── gradledemo
│ │ │ │ └── ExampleInstrumentedTest.java
│ │ ├── debug
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── hencoder
│ │ │ │ └── gradledemo
│ │ │ │ └── Utils.java
│ │ ├── internal
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── hencoder
│ │ │ │ └── gradledemo
│ │ │ │ └── Utils.java
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── hencoder
│ │ │ │ │ └── gradledemo
│ │ │ │ │ └── MainActivity.java
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ ├── release
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── hencoder
│ │ │ │ └── gradledemo
│ │ │ │ └── Utils.java
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── hencoder
│ │ │ └── gradledemo
│ │ │ └── ExampleUnitTest.java
│ └── version.properties
├── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── library1
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── hencoder
│ │ │ └── library1
│ │ │ └── ExampleInstrumentedTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ └── res
│ │ │ └── values
│ │ │ └── strings.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── library1
│ │ └── ExampleUnitTest.java
├── library2
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── hencoder
│ │ │ └── library2
│ │ │ └── ExampleInstrumentedTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ └── res
│ │ │ └── values
│ │ │ └── strings.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── library2
│ │ └── ExampleUnitTest.java
└── settings.gradle
├── 26_gradle_plugin
├── .gitignore
├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── hencoder
│ │ │ └── a26_gradle_plugin
│ │ │ └── ExampleInstrumentedTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── hencoder
│ │ │ │ └── a26_gradle_plugin
│ │ │ │ └── MainActivity.java
│ │ └── res
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ │ ├── layout
│ │ │ └── activity_main.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a26_gradle_plugin
│ │ └── ExampleUnitTest.java
├── build.gradle
├── buildSrc
│ ├── .gitignore
│ ├── build.gradle
│ └── src
│ │ └── main
│ │ ├── groovy
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── plugin
│ │ │ ├── HenCoder.groovy
│ │ │ ├── HenCoderExtension.groovy
│ │ │ └── HenCoderTransform.groovy
│ │ └── resources
│ │ └── META-INF
│ │ └── gradle-plugins
│ │ └── com.hencoder.plugindemo.properties
├── gradle.properties
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
├── 30_arch
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a30_arch
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a30_arch
│ │ │ ├── MainActivity.java
│ │ │ ├── data
│ │ │ └── DataCenter.java
│ │ │ ├── mvc
│ │ │ ├── DataView.java
│ │ │ └── MvcActivity.java
│ │ │ ├── mvp
│ │ │ ├── MvpActivity.java
│ │ │ └── Presenter.java
│ │ │ └── mvvm
│ │ │ ├── MvvmActivity.java
│ │ │ ├── ViewBinder.java
│ │ │ └── ViewModel.java
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ ├── activity_main.xml
│ │ └── activity_mvc.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a30_arch
│ └── ExampleUnitTest.java
├── 31_pluginnable
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a31_pluginnable
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── assets
│ │ └── apk
│ │ │ └── 31_pluginnable_plugin-debug.apk
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a31_pluginnable
│ │ │ ├── MainActivity.java
│ │ │ ├── ProxyActivity.java
│ │ │ └── utils
│ │ │ └── Utils.java
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ └── activity_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a31_pluginnable
│ └── ExampleUnitTest.java
├── 31_pluginnable_plugin
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a31_pluginnable_plugin
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a31_pluginnable_plugin
│ │ │ ├── SecondActivity.java
│ │ │ └── Utils.java
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ └── activity_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a31_pluginnable_plugin
│ └── ExampleUnitTest.java
├── 32_hotfix
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a32_hotfix
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── assets
│ │ └── apk
│ │ │ ├── 32_hotfix-debug.apk
│ │ │ └── hotfix.dex
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a32_hotfix
│ │ │ ├── HotfixApplication.java
│ │ │ ├── MainActivity.java
│ │ │ └── Title.java
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ └── activity_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a32_hotfix
│ └── ExampleUnitTest.java
├── 33_annotation_processing
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a33_annotation_processing
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a33_annotation_processing
│ │ │ ├── InnerBinding.java
│ │ │ └── MainActivity.java
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ └── activity_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a33_annotation_processing
│ └── ExampleUnitTest.java
├── 33_lib
├── .gitignore
├── build.gradle
├── consumer-rules.pro
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a33_lib
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a33_lib
│ │ │ └── Binding.java
│ └── res
│ │ └── values
│ │ └── strings.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a33_lib
│ └── ExampleUnitTest.java
├── 33_lib_annotations
├── .gitignore
├── build.gradle
└── src
│ └── main
│ └── java
│ └── com
│ └── hencoder
│ └── a33_lib_annotations
│ └── BindView.java
├── 33_lib_processor
├── .gitignore
├── build.gradle
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── hencoder
│ │ └── a33_lib_processor
│ │ └── BindingProcessor.java
│ └── resources
│ └── META-INF
│ └── services
│ └── javax.annotation.processing.Processor
├── 33_lib_reflection
├── .gitignore
├── build.gradle
├── consumer-rules.pro
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a33_lib_reflection
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a33_lib_reflection
│ │ │ ├── BindView.java
│ │ │ └── Binding.java
│ └── res
│ │ └── values
│ │ └── strings.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a33_lib_reflection
│ └── ExampleUnitTest.java
├── 34_generics
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── hencoder
│ │ └── a34_generics
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hencoder
│ │ │ └── a34_generics
│ │ │ ├── HenCoderList.java
│ │ │ ├── HenCoderMap.java
│ │ │ ├── HenCoderShopList.java
│ │ │ ├── MainActivity.java
│ │ │ ├── food
│ │ │ ├── Alligator.java
│ │ │ ├── Animal.java
│ │ │ ├── Eater.java
│ │ │ ├── Food.java
│ │ │ ├── HenCoderShopList.java
│ │ │ └── Human.java
│ │ │ ├── fruit
│ │ │ ├── Apple.java
│ │ │ ├── Banana.java
│ │ │ ├── Fruit.java
│ │ │ └── Watermelon.java
│ │ │ ├── kotlin
│ │ │ ├── Huggable.kt
│ │ │ ├── KShop.kt
│ │ │ └── KotlinTest.kt
│ │ │ ├── shop
│ │ │ ├── AppleShop.java
│ │ │ ├── EaterShop.java
│ │ │ ├── FruitShop.java
│ │ │ ├── NormalFruitShop.java
│ │ │ ├── NormalShop.java
│ │ │ ├── RepairableShop.java
│ │ │ ├── Shop.java
│ │ │ ├── SimShop.java
│ │ │ └── UnicomSimShop.java
│ │ │ └── sim
│ │ │ ├── ChinaMobileSim.java
│ │ │ ├── ChinaTelecomSim.java
│ │ │ ├── ChinaUnicomSim.java
│ │ │ └── Sim.java
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ └── activity_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── hencoder
│ └── a34_generics
│ └── ExampleUnitTest.java
├── README.md
├── build.gradle
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
/.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
--------------------------------------------------------------------------------
/07_kotlin_app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/07_kotlin_app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/07_kotlin_app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/07_kotlin_app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/07_kotlin_app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/07_kotlin_app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/07_kotlin_app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/07_kotlin_app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/07_kotlin_app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/07_kotlin_app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/07_kotlin_app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/07_kotlin_app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/07_kotlin_base/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/07_kotlin_base/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/07_kotlin_base/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/07_kotlin_base/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | HenCoder
3 | 查看全部课程
4 | 只看回放课程
5 |
6 |
--------------------------------------------------------------------------------
/07_kotlin_base/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/07_kotlin_lesson/.gitignore:
--------------------------------------------------------------------------------
1 | /build
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 |
--------------------------------------------------------------------------------
/07_kotlin_lesson/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/07_kotlin_lesson/src/main/res/menu/menu_lesson.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/07_kotlin_lesson/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #8F9DEE
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/07_kotlin_lesson/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
--------------------------------------------------------------------------------
/09_drawing/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/09_drawing/src/main/res/drawable-v24/avatar_rengwuxian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/09_drawing/src/main/res/drawable-v24/avatar_rengwuxian.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/09_drawing/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/09_drawing/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/09_drawing/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/09_drawing/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/09_drawing/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/09_drawing/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/09_drawing/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/09_drawing/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/09_drawing/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/09_drawing/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/09_drawing/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/09_drawing/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 09_drawing
3 |
4 |
--------------------------------------------------------------------------------
/09_drawing/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
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 | }
--------------------------------------------------------------------------------
/10_text_and_transformation/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/assets/Quicksand-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/10_text_and_transformation/src/main/assets/Quicksand-Regular.ttf
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/drawable-v24/avatar_rengwuxian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/10_text_and_transformation/src/main/res/drawable-v24/avatar_rengwuxian.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/10_text_and_transformation/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 |
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/10_text_and_transformation/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/10_text_and_transformation/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/10_text_and_transformation/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/10_text_and_transformation/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/10_text_and_transformation/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/10_text_and_transformation/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/10_text_and_transformation/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/10_text_and_transformation/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/10_text_and_transformation/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/10_text_and_transformation/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 10_text_and_transformation
3 |
4 |
--------------------------------------------------------------------------------
/10_text_and_transformation/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/11_animation/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/11_animation/src/main/res/drawable/avatar_rengwuxian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/11_animation/src/main/res/drawable/avatar_rengwuxian.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/11_animation/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/11_animation/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/11_animation/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/11_animation/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/11_animation/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/11_animation/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/11_animation/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/11_animation/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/11_animation/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/11_animation/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/11_animation/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/11_animation/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 11_animation
3 |
4 |
--------------------------------------------------------------------------------
/11_animation/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/12_bitmap_drawable/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/12_bitmap_drawable/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 |
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/12_bitmap_drawable/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/12_bitmap_drawable/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/12_bitmap_drawable/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/12_bitmap_drawable/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/12_bitmap_drawable/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/12_bitmap_drawable/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/12_bitmap_drawable/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/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/12_bitmap_drawable/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/12_bitmap_drawable/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/12_bitmap_drawable/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 12_bitmap_drawable
3 |
4 |
--------------------------------------------------------------------------------
/12_bitmap_drawable/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/13_layout/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/13_layout/src/main/res/drawable/avatar_rengwuxian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/13_layout/src/main/res/drawable/avatar_rengwuxian.png
--------------------------------------------------------------------------------
/13_layout/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 |
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/13_layout/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/13_layout/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/13_layout/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/13_layout/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/13_layout/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/13_layout/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/13_layout/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/13_layout/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/13_layout/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/13_layout/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/13_layout/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/13_layout/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 13_layout
3 |
4 |
--------------------------------------------------------------------------------
/13_layout/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/14_touch/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
15 |
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/14_touch/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/14_touch/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/14_touch/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/14_touch/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/14_touch/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/14_touch/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/14_touch/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/14_touch/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/14_touch/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/14_touch/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/14_touch/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/14_touch/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 14_touch
3 |
4 |
--------------------------------------------------------------------------------
/14_touch/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/15_scalableimageview/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/drawable/avatar_rengwuxian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/15_scalableimageview/src/main/res/drawable/avatar_rengwuxian.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
12 |
13 |
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/15_scalableimageview/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/15_scalableimageview/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/15_scalableimageview/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/15_scalableimageview/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/15_scalableimageview/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/15_scalableimageview/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/15_scalableimageview/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/15_scalableimageview/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/15_scalableimageview/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/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/15_scalableimageview/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | ScalableImageView
3 |
4 |
--------------------------------------------------------------------------------
/15_scalableimageview/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/16_multi_touch/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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/drawable/avatar_rengwuxian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/16_multi_touch/src/main/res/drawable/avatar_rengwuxian.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/16_multi_touch/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 |
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/16_multi_touch/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/16_multi_touch/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/16_multi_touch/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/16_multi_touch/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/16_multi_touch/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/16_multi_touch/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/16_multi_touch/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/16_multi_touch/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/16_multi_touch/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/16_multi_touch/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 16_multi_touch
3 |
4 |
--------------------------------------------------------------------------------
/16_multi_touch/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/17_constraintlayout/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/earth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/drawable/earth.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/ic_favorite_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/ic_mail_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/ic_play_circle_filled_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/ic_save_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/moon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/drawable/moon.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/qq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/drawable/qq.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/qzone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/drawable/qzone.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/sun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/drawable/sun.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/drawable/twitter.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/wechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/drawable/wechat.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/wechat_friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/drawable/wechat_friend.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/drawable/weibo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/drawable/weibo.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/17_constraintlayout/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 19_constraintlayout
3 |
4 |
--------------------------------------------------------------------------------
/17_constraintlayout/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/18_motionlayout/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/18_motionlayout/CycleEditor.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout/CycleEditor.jar
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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)
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/drawable/avatar.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout/src/main/res/drawable/avatar.jpg
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/drawable/film_cover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout/src/main/res/drawable/film_cover.webp
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/drawable/ic_bookmark_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/drawable/ic_heart_24dp.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
10 |
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/layout/activity_go.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
--------------------------------------------------------------------------------
/18_motionlayout/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/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 | #FFD600
7 |
8 |
--------------------------------------------------------------------------------
/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/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/drawable/cat_1.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout_example/src/main/res/drawable/cat_1.jpeg
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/drawable/film_cover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout_example/src/main/res/drawable/film_cover.webp
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/drawable/ic_bookmark_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/drawable/ic_clear_gray_32dp.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/drawable/ic_dashboard_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/drawable/ic_home_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/drawable/ic_notifications_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/drawable/ic_play_arrow_gray_32dp.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout_example/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout_example/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout_example/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout_example/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout_example/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout_example/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout_example/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout_example/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout_example/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/18_motionlayout_example/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 | #CCCCCC
7 |
8 | #FFD600
9 |
10 |
--------------------------------------------------------------------------------
/18_motionlayout_example/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/19_touch_viewgroup/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/19_touch_viewgroup/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_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/19_touch_viewgroup/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/19_touch_viewgroup/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/19_touch_viewgroup/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/19_touch_viewgroup/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/19_touch_viewgroup/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/19_touch_viewgroup/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/19_touch_viewgroup/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/19_touch_viewgroup/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/19_touch_viewgroup/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/19_touch_viewgroup/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 19_touch_viewgroup
3 |
4 |
--------------------------------------------------------------------------------
/19_touch_viewgroup/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/20_drag_nestedscroll/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/drawable/avatar_rengwuxian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/20_drag_nestedscroll/src/main/res/drawable/avatar_rengwuxian.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/drawable/google_logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/20_drag_nestedscroll/src/main/res/drawable/google_logo.jpg
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/layout/drag_up_down.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/20_drag_nestedscroll/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_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/20_drag_nestedscroll/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/20_drag_nestedscroll/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/20_drag_nestedscroll/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/20_drag_nestedscroll/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/20_drag_nestedscroll/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/20_drag_nestedscroll/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/20_drag_nestedscroll/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/20_drag_nestedscroll/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/20_drag_nestedscroll/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/20_drag_nestedscroll/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 20_drag_nestedscroll
3 |
4 |
--------------------------------------------------------------------------------
/20_drag_nestedscroll/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/21_thread_synchronization/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/22_thread_interaction/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/23_rxjava/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/23_rxjava/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 |
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/23_rxjava/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/23_rxjava/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/23_rxjava/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/23_rxjava/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/23_rxjava/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/23_rxjava/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/23_rxjava/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/23_rxjava/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/23_rxjava/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/23_rxjava/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 23_rxjava
3 |
4 |
--------------------------------------------------------------------------------
/23_rxjava/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/24_io/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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"
--------------------------------------------------------------------------------
/24_io/text.txt:
--------------------------------------------------------------------------------
1 | 12334
2 | 3
3 | 454
--------------------------------------------------------------------------------
/24_io/text_copy.txt:
--------------------------------------------------------------------------------
1 | abcdd赛况范
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/25_gradle/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/25_gradle/app/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/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/25_gradle/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/25_gradle/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/25_gradle/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/25_gradle/app/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/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/25_gradle/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/25_gradle/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/25_gradle/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/25_gradle/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/25_gradle/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/25_gradle/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | GradleDemo
3 |
4 |
--------------------------------------------------------------------------------
/25_gradle/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/app/version.properties:
--------------------------------------------------------------------------------
1 | #Tue Jun 04 22:19:43 CST 2019
2 | VERSION_NAME=1.0.0
3 | VERSION_CODE=2332
4 |
--------------------------------------------------------------------------------
/25_gradle/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/25_gradle/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/25_gradle/library1/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/25_gradle/library1/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/25_gradle/library1/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | library1
3 |
4 |
--------------------------------------------------------------------------------
/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/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/25_gradle/library2/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/25_gradle/library2/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | library2
3 |
4 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/25_gradle/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':library1', ':library2'
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/26_gradle_plugin/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-anydpi-v26/ic_launcher.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 |
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/26_gradle_plugin/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/26_gradle_plugin/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/26_gradle_plugin/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/26_gradle_plugin/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/26_gradle_plugin/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/26_gradle_plugin/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/26_gradle_plugin/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/26_gradle_plugin/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/26_gradle_plugin/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/26_gradle_plugin/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 26_gradle_plugin
3 |
4 |
--------------------------------------------------------------------------------
/26_gradle_plugin/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/26_gradle_plugin/buildSrc/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/26_gradle_plugin/buildSrc/src/main/resources/META-INF/gradle-plugins/com.hencoder.plugindemo.properties:
--------------------------------------------------------------------------------
1 | implementation-class=com.hencoder.plugin.HenCoder
--------------------------------------------------------------------------------
/26_gradle_plugin/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/26_gradle_plugin/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/26_gradle_plugin/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name='26_gradle_plugin'
3 |
--------------------------------------------------------------------------------
/30_arch/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/30_arch/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 |
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/30_arch/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/30_arch/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/30_arch/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/30_arch/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/30_arch/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/30_arch/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/30_arch/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/30_arch/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/30_arch/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/30_arch/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/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/30_arch/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/30_arch/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/30_arch/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 30_arch
3 |
4 |
--------------------------------------------------------------------------------
/30_arch/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/31_pluginnable/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/31_pluginnable/src/main/assets/apk/31_pluginnable_plugin-debug.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable/src/main/assets/apk/31_pluginnable_plugin-debug.apk
--------------------------------------------------------------------------------
/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/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/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 31_pluginnable
3 |
4 |
--------------------------------------------------------------------------------
/31_pluginnable/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/31_pluginnable_plugin/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable_plugin/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable_plugin/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable_plugin/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable_plugin/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable_plugin/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable_plugin/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable_plugin/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable_plugin/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable_plugin/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/31_pluginnable_plugin/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 31_pluginnable_plugin
3 |
4 |
--------------------------------------------------------------------------------
/31_pluginnable_plugin/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
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 | }
--------------------------------------------------------------------------------
/32_hotfix/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/32_hotfix/src/main/assets/apk/32_hotfix-debug.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/32_hotfix/src/main/assets/apk/32_hotfix-debug.apk
--------------------------------------------------------------------------------
/32_hotfix/src/main/assets/apk/hotfix.dex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/32_hotfix/src/main/assets/apk/hotfix.dex
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/32_hotfix/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 |
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/32_hotfix/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/32_hotfix/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/32_hotfix/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/32_hotfix/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/32_hotfix/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/32_hotfix/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/32_hotfix/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/32_hotfix/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/32_hotfix/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/32_hotfix/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 32_hotfix
3 |
4 |
--------------------------------------------------------------------------------
/32_hotfix/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/33_annotation_processing/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/33_annotation_processing/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/33_annotation_processing/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/33_annotation_processing/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/33_annotation_processing/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/33_annotation_processing/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/33_annotation_processing/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/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/33_annotation_processing/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/33_annotation_processing/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/33_annotation_processing/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/33_annotation_processing/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 33_annotation_processing
3 |
4 |
--------------------------------------------------------------------------------
/33_annotation_processing/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/33_lib/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/33_lib/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/33_lib/consumer-rules.pro
--------------------------------------------------------------------------------
/33_lib/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/33_lib/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 33_lib
3 |
4 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/33_lib_annotations/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/33_lib_processor/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/33_lib_processor/src/main/resources/META-INF/services/javax.annotation.processing.Processor:
--------------------------------------------------------------------------------
1 | com.hencoder.a33_lib_processor.BindingProcessor
--------------------------------------------------------------------------------
/33_lib_reflection/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/33_lib_reflection/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/33_lib_reflection/consumer-rules.pro
--------------------------------------------------------------------------------
/33_lib_reflection/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/33_lib_reflection/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 33_lib_reflection
3 |
4 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/34_generics/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/food/Food.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.food;
2 |
3 | public interface Food {
4 | void eaten();
5 | }
6 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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/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/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 | }
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/ChinaTelecomSim.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.sim;
2 |
3 | public class ChinaTelecomSim 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/java/com/hencoder/a34_generics/sim/Sim.java:
--------------------------------------------------------------------------------
1 | package com.hencoder.a34_generics.sim;
2 |
3 | public interface Sim {
4 | }
5 |
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/34_generics/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/34_generics/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/34_generics/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/34_generics/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/34_generics/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/34_generics/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/34_generics/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/34_generics/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/34_generics/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/34_generics/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/34_generics/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/34_generics/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/34_generics/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 34_generics
3 |
4 |
--------------------------------------------------------------------------------
/34_generics/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rengwuxian/HenCoderPlus3/c91a284b3a84b57b75ac2af8aa3a0e51e3395f23/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------