├── .github └── workflows │ └── copy-branch.yml ├── .gitignore ├── AnimationsInterpolatorPlayground ├── .gitignore ├── .google │ └── packaging.yaml ├── README.md ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── android │ │ │ └── interpolatorplayground │ │ │ ├── ControlPointCallback.java │ │ │ ├── CurveVisualizer.java │ │ │ ├── MainActivity.java │ │ │ └── TimingVisualizer.java │ │ └── res │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── screenshot.png └── settings.gradle ├── CONTRIBUTING.md ├── CardView ├── .google │ └── packaging.yaml ├── Application │ ├── build.gradle │ ├── src │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── android │ │ │ │ └── cardview │ │ │ │ ├── CardViewActivity.java │ │ │ │ └── CardViewFragment.java │ │ │ └── res │ │ │ ├── drawable-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── tile.9.png │ │ │ ├── drawable-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── layout │ │ │ ├── activity_card_view.xml │ │ │ └── fragment_card_view.xml │ │ │ ├── values-sw600dp │ │ │ ├── template-dimens.xml │ │ │ └── template-styles.xml │ │ │ ├── values-v11 │ │ │ └── template-styles.xml │ │ │ ├── values-v21 │ │ │ ├── base-colors.xml │ │ │ └── base-template-styles.xml │ │ │ └── values │ │ │ ├── base-strings.xml │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ ├── template-dimens.xml │ │ │ └── template-styles.xml │ └── tests │ │ ├── AndroidManifest.xml │ │ └── src │ │ └── com │ │ └── example │ │ └── android │ │ └── cardview │ │ └── SampleTests.java ├── README.md ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── CardViewKotlin ├── .google │ └── packaging.yaml ├── Application │ ├── build.gradle │ ├── src │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── android │ │ │ │ └── cardview │ │ │ │ ├── CardViewActivity.kt │ │ │ │ └── CardViewFragment.kt │ │ │ └── res │ │ │ ├── drawable-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── tile.9.png │ │ │ ├── drawable-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── layout │ │ │ ├── activity_card_view.xml │ │ │ └── fragment_card_view.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ └── tests │ │ └── src │ │ └── com │ │ └── example │ │ └── android │ │ └── cardview │ │ └── SampleTests.kt ├── README.md ├── build.gradle ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── ConstraintLayoutExamples ├── .gitignore ├── .google │ └── packaging.yaml ├── CycleEditor │ └── src │ │ └── com │ │ └── google │ │ └── androidstudio │ │ └── motionlayoutcycles │ │ ├── AnimationPanel.java │ │ ├── CycleEdit.java │ │ ├── CycleModel.java │ │ ├── CycleSetModel.java │ │ ├── CycleView.java │ │ ├── Easing.java │ │ ├── HyperSpline.java │ │ ├── Interpolator.java │ │ ├── KeyCycleExamples.java │ │ ├── LinearInterpolator.java │ │ ├── MainPanel.java │ │ ├── MonotoneSpline.java │ │ └── Oscillator.java ├── README.md ├── build.gradle ├── constraintlayout │ ├── .gitignore │ ├── build.gradle │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── android │ │ │ │ └── constraintlayoutexamples │ │ │ │ ├── ConstraintSetExampleActivity.java │ │ │ │ └── MainActivity.java │ │ └── res │ │ │ ├── drawable │ │ │ ├── ic_android_black_24dp.xml │ │ │ └── lake.jpg │ │ │ ├── layout-land │ │ │ ├── constraint_example_5.xml │ │ │ └── constraintset_example_big.xml │ │ │ ├── layout │ │ │ ├── activity_main.xml │ │ │ ├── constraint_example_1.xml │ │ │ ├── constraint_example_2.xml │ │ │ ├── constraint_example_3.xml │ │ │ ├── constraint_example_4.xml │ │ │ ├── constraint_example_5.xml │ │ │ ├── constraint_example_6.xml │ │ │ ├── constraint_example_x1.xml │ │ │ ├── constraintset_example_big.xml │ │ │ └── constraintset_example_main.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── android │ │ └── constraintlayoutexamples │ │ └── ExampleUnitTest.java ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── motionlayout │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── google │ │ │ └── androidstudio │ │ │ └── motionlayoutexample │ │ │ ├── DemoActivity.kt │ │ │ ├── DemosAdapter.kt │ │ │ ├── MainActivity.kt │ │ │ ├── fragmentsdemo │ │ │ ├── CustomAdapter.kt │ │ │ ├── FragmentExample2Activity.kt │ │ │ ├── FragmentExampleActivity.kt │ │ │ ├── ItemFragment.kt │ │ │ ├── ListFragment.kt │ │ │ ├── MainFragment.kt │ │ │ ├── SecondFragment.kt │ │ │ └── User.kt │ │ │ ├── helpers │ │ │ ├── ExampleFlyinBounceHelper.java │ │ │ ├── FadeIn.java │ │ │ └── FadeOut.java │ │ │ ├── histogramdemo │ │ │ ├── ColorHelper.kt │ │ │ ├── HistogramActivity.kt │ │ │ ├── HistogramAnimationGuard.kt │ │ │ ├── HistogramBarMetaData.kt │ │ │ ├── HistogramWidget.kt │ │ │ └── NonAnimatingHistogramWidget.kt │ │ │ ├── utils │ │ │ ├── BoundsImageView.kt │ │ │ ├── CollapsibleToolbar.kt │ │ │ ├── DrawerContent.kt │ │ │ ├── TouchFrameLayout.java │ │ │ └── ViewpagerHeader.kt │ │ │ ├── viewpagerdemo │ │ │ ├── Page.kt │ │ │ ├── ViewPagerActivity.kt │ │ │ ├── ViewPagerActivity2.kt │ │ │ └── ViewPagerAdapter.kt │ │ │ └── youtubedemo │ │ │ ├── Cats.kt │ │ │ ├── PhotosAdapter.kt │ │ │ └── YouTubeDemoActivity.kt │ │ └── res │ │ ├── animator │ │ ├── hide.xml │ │ └── show.xml │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── avatar_1_raster.png │ │ ├── avatar_2_raster.png │ │ ├── avatar_3_raster.png │ │ ├── avatar_4_raster.png │ │ ├── avatar_5_raster.png │ │ ├── avatar_6_raster.png │ │ ├── avatar_7_raster.png │ │ ├── avatar_8_raster.png │ │ ├── car.png │ │ ├── cat_1.jpeg │ │ ├── cat_10.jpeg │ │ ├── cat_11.jpeg │ │ ├── cat_12.jpeg │ │ ├── cat_13.jpeg │ │ ├── cat_14.jpeg │ │ ├── cat_15.jpeg │ │ ├── cat_16.jpeg │ │ ├── cat_17.jpeg │ │ ├── cat_18.jpeg │ │ ├── cat_19.jpeg │ │ ├── cat_2.jpeg │ │ ├── cat_3.jpeg │ │ ├── cat_4.jpeg │ │ ├── cat_5.jpeg │ │ ├── cat_6.jpeg │ │ ├── cat_7.jpeg │ │ ├── cat_8.jpeg │ │ ├── cat_9.jpeg │ │ ├── circle.xml │ │ ├── hoford.jpg │ │ ├── ic_add_a_photo_24dp.xml │ │ ├── ic_clear_gray_32dp.xml │ │ ├── ic_dashboard_black_24dp.xml │ │ ├── ic_home_black_24dp.xml │ │ ├── ic_info_black_24dp.xml │ │ ├── ic_keyboard_arrow_right.xml │ │ ├── ic_keyboard_arrow_right_black_24dp.xml │ │ ├── ic_keyboard_arrow_up.xml │ │ ├── ic_launcher_background.xml │ │ ├── ic_notifications_black_24dp.xml │ │ ├── ic_play_arrow_gray_32dp.xml │ │ ├── ml_icon.png │ │ ├── ml_logo.png │ │ ├── monterey.jpg │ │ ├── monterey_small.jpg │ │ ├── mountains.jpg │ │ ├── roard.jpg │ │ ├── sea.jpg │ │ ├── sunset2.jpg │ │ ├── trees.png │ │ └── wcircle.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── activity_scrolling.xml │ │ ├── content_scrolling.xml │ │ ├── histogram_layout.xml │ │ ├── item_layout.xml │ │ ├── main_activity.xml │ │ ├── motion_01_basic.xml │ │ ├── motion_01_cl_end.xml │ │ ├── motion_01_cl_start.xml │ │ ├── motion_02_basic.xml │ │ ├── motion_02_basic_autocomplete_false.xml │ │ ├── motion_03_custom_attribute.xml │ │ ├── motion_04_imagefilter.xml │ │ ├── motion_05_imagefilter.xml │ │ ├── motion_06_keyframe.xml │ │ ├── motion_07_keyframe.xml │ │ ├── motion_08_cycle.xml │ │ ├── motion_09_coordinatorlayout.xml │ │ ├── motion_09_coordinatorlayout_header.xml │ │ ├── motion_10_coordinatorlayout.xml │ │ ├── motion_10_coordinatorlayout_header.xml │ │ ├── motion_11_coordinatorlayout.xml │ │ ├── motion_11_coordinatorlayout_header.xml │ │ ├── motion_12_drawerlayout.xml │ │ ├── motion_12_drawerlayout_content.xml │ │ ├── motion_12_drawerlayout_menu.xml │ │ ├── motion_13_drawerlayout.xml │ │ ├── motion_13_drawerlayout_menu.xml │ │ ├── motion_14_side_panel.xml │ │ ├── motion_15_parallax.xml │ │ ├── motion_16_viewpager.xml │ │ ├── motion_16_viewpager_page1.xml │ │ ├── motion_16_viewpager_page2.xml │ │ ├── motion_16_viewpager_page3.xml │ │ ├── motion_17_coordination.xml │ │ ├── motion_17_coordination_header.xml │ │ ├── motion_18_coordination.xml │ │ ├── motion_19_coordination.xml │ │ ├── motion_19_coordination_header.xml │ │ ├── motion_20_reveal.xml │ │ ├── motion_21_main_fragment.xml │ │ ├── motion_21_second_fragment.xml │ │ ├── motion_22_list_fragment.xml │ │ ├── motion_23_parallax.xml │ │ ├── motion_23_viewpager.xml │ │ ├── motion_24_recyclerview_expanded_row.xml │ │ ├── motion_24_recyclerview_expanded_text_description.xml │ │ ├── motion_24_recyclerview_expanded_text_header.xml │ │ ├── motion_24_youtube.xml │ │ ├── motion_25_keytrigger.xml │ │ ├── motion_26_multistate.xml │ │ └── row.xml │ │ ├── menu │ │ ├── bottom_nav_menu.xml │ │ └── menu_scrolling.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 │ │ ├── raw │ │ └── walkthrough.json │ │ ├── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ │ └── xml │ │ ├── list_scene.xml │ │ ├── main_scene.xml │ │ ├── rv_scene.xml │ │ ├── scene_01.xml │ │ ├── scene_02.xml │ │ ├── scene_02_autocomplete_false.xml │ │ ├── scene_03.xml │ │ ├── scene_04.xml │ │ ├── scene_05.xml │ │ ├── scene_06.xml │ │ ├── scene_07.xml │ │ ├── scene_08.xml │ │ ├── scene_09.xml │ │ ├── scene_10_header.xml │ │ ├── scene_11_header.xml │ │ ├── scene_12_content.xml │ │ ├── scene_13_menu.xml │ │ ├── scene_14.xml │ │ ├── scene_15.xml │ │ ├── scene_17.xml │ │ ├── scene_17_header.xml │ │ ├── scene_18.xml │ │ ├── scene_19.xml │ │ ├── scene_19_header.xml │ │ ├── scene_20.xml │ │ ├── scene_21_second_fragment.xml │ │ ├── scene_23.xml │ │ ├── scene_24.xml │ │ ├── scene_25.xml │ │ └── scene_26.xml ├── motionlayoutintegrations │ ├── .gitignore │ ├── README.md │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── androidstudio │ │ │ └── motionlayoutintegrations │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── androidstudio │ │ │ │ └── motionlayoutintegrations │ │ │ │ ├── CollapsingToolbar.kt │ │ │ │ ├── Entrance.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ └── ViewPagerIntegration.kt │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable-xxxhdpi │ │ │ ├── rocket_background.jpg │ │ │ └── star_parallax.jpg │ │ │ ├── drawable │ │ │ ├── circle_glow.png │ │ │ ├── circle_shape.xml │ │ │ ├── collapsing.png │ │ │ ├── entrance.png │ │ │ ├── ic_launcher_background.xml │ │ │ ├── inner_glow.png │ │ │ └── pager.png │ │ │ ├── layout │ │ │ ├── activity_collapsing_toolbar.xml │ │ │ ├── activity_entrance.xml │ │ │ ├── activity_main.xml │ │ │ ├── activity_view_pager_integration.xml │ │ │ ├── lots_of_cards.xml │ │ │ ├── page_1.xml │ │ │ ├── page_2.xml │ │ │ └── page_3.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 │ │ │ └── xml │ │ │ ├── activity_collapsing_toolbar_scene.xml │ │ │ ├── activity_entrance_scene.xml │ │ │ └── activity_view_pager_integration_scene.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── androidstudio │ │ └── motionlayoutintegrations │ │ └── ExampleUnitTest.kt ├── screenshots │ ├── advanced_chains.png │ └── constraint_set_example.png └── settings.gradle ├── DataBindingDataBoundList ├── .gitignore ├── .google │ └── packaging.yaml ├── README.md ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── android │ │ │ └── databoundlist │ │ │ ├── ButtonHandler.java │ │ │ ├── ListBindingAdapters.java │ │ │ ├── MainActivity.java │ │ │ └── User.java │ │ └── res │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── item_large.xml │ │ └── item_small.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── ids.xml │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── DataBindingDataBoundRecyclerView ├── .gitignore ├── .google │ └── packaging.yaml ├── README.md ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── android │ │ │ └── databoundrecyclerview │ │ │ └── ApplicationTest.java │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── android │ │ │ │ └── databoundrecyclerview │ │ │ │ ├── ActionCallback.java │ │ │ │ ├── BaseDataBoundAdapter.java │ │ │ │ ├── City.java │ │ │ │ ├── DataBoundAdapter.java │ │ │ │ ├── DataBoundViewHolder.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── MultiTypeDataBoundAdapter.java │ │ │ │ └── State.java │ │ └── res │ │ │ ├── drawable-hdpi │ │ │ ├── favorite_active.png │ │ │ └── favorite_passive.png │ │ │ ├── drawable-mdpi │ │ │ ├── favorite_active.png │ │ │ └── favorite_passive.png │ │ │ ├── drawable-xhdpi │ │ │ ├── favorite_active.png │ │ │ └── favorite_passive.png │ │ │ ├── drawable-xxhdpi │ │ │ ├── favorite_active.png │ │ │ └── favorite_passive.png │ │ │ ├── drawable-xxxhdpi │ │ │ ├── favorite_active.png │ │ │ └── favorite_passive.png │ │ │ ├── drawable │ │ │ └── fav_button.xml │ │ │ ├── layout │ │ │ ├── activity_main.xml │ │ │ ├── city_item.xml │ │ │ └── state_item.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── android │ │ └── databoundrecyclerview │ │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── LICENSE ├── MultiWindowPlayground ├── .google │ └── packaging.yaml ├── Application │ ├── build.gradle │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ ├── android │ │ │ └── multiwindowplayground │ │ │ │ ├── MainActivity.java │ │ │ │ └── activities │ │ │ │ ├── AdjacentActivity.java │ │ │ │ ├── BasicActivity.java │ │ │ │ ├── CustomConfigurationChangeActivity.java │ │ │ │ ├── LaunchBoundsActivity.java │ │ │ │ ├── LoggingActivity.java │ │ │ │ ├── MinimumSizeActivity.java │ │ │ │ └── UnresizableActivity.java │ │ │ └── example │ │ │ └── android │ │ │ └── common │ │ │ └── logger │ │ │ ├── Log.java │ │ │ ├── LogFragment.java │ │ │ ├── LogNode.java │ │ │ ├── LogView.java │ │ │ ├── LogWrapper.java │ │ │ └── MessageOnlyLogFilter.java │ │ └── res │ │ ├── layout │ │ ├── activity_logging.xml │ │ ├── activity_main.xml │ │ └── logging.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml ├── README.md ├── build.gradle ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── screenshots │ ├── icon-web.png │ └── main.png └── settings.gradle ├── MultiWindowPlaygroundKotlin ├── .google │ └── packaging.yaml ├── Application │ ├── build.gradle │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── android │ │ │ └── multiwindowplayground │ │ │ ├── MainActivity.kt │ │ │ ├── activities │ │ │ ├── AdjacentActivity.kt │ │ │ ├── BasicActivity.kt │ │ │ ├── CustomConfigurationChangeActivity.kt │ │ │ ├── LaunchBoundsActivity.kt │ │ │ ├── LoggingActivity.kt │ │ │ ├── MinimumSizeActivity.kt │ │ │ └── UnresizableActivity.kt │ │ │ └── logger │ │ │ ├── Log.kt │ │ │ ├── LogFragment.kt │ │ │ ├── LogNode.kt │ │ │ ├── LogView.kt │ │ │ ├── LogWrapper.kt │ │ │ └── MessageOnlyLogFilter.kt │ │ └── res │ │ ├── layout │ │ ├── activity_logging.xml │ │ ├── activity_main.xml │ │ └── logging.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml ├── README.md ├── build.gradle ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── screenshots │ ├── icon-web.png │ └── main.png └── settings.gradle ├── README.md ├── RecyclerView ├── .google │ └── packaging.yaml ├── Application │ ├── build.gradle │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── android │ │ │ ├── common │ │ │ ├── activities │ │ │ │ └── SampleActivityBase.java │ │ │ └── logger │ │ │ │ ├── Log.java │ │ │ │ ├── LogFragment.java │ │ │ │ ├── LogNode.java │ │ │ │ ├── LogView.java │ │ │ │ ├── LogWrapper.java │ │ │ │ └── MessageOnlyLogFilter.java │ │ │ └── recyclerview │ │ │ ├── CustomAdapter.java │ │ │ ├── MainActivity.java │ │ │ └── RecyclerViewFragment.java │ │ └── res │ │ ├── drawable-hdpi │ │ ├── ic_launcher.png │ │ └── tile.9.png │ │ ├── drawable-mdpi │ │ └── ic_launcher.png │ │ ├── drawable-xhdpi │ │ └── ic_launcher.png │ │ ├── drawable-xxhdpi │ │ └── ic_launcher.png │ │ ├── layout-w720dp │ │ └── activity_main.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── recycler_view_frag.xml │ │ └── text_row_item.xml │ │ ├── menu │ │ └── main.xml │ │ ├── values-sw600dp │ │ ├── template-dimens.xml │ │ └── template-styles.xml │ │ ├── values-v11 │ │ └── template-styles.xml │ │ ├── values-v21 │ │ ├── base-colors.xml │ │ └── base-template-styles.xml │ │ └── values │ │ ├── base-strings.xml │ │ ├── dimens.xml │ │ ├── fragmentview_strings.xml │ │ ├── strings.xml │ │ ├── template-dimens.xml │ │ └── template-styles.xml ├── README.md ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── screenshots │ ├── 1-linear.png │ ├── 2-grid.png │ └── icon-web.png └── settings.gradle ├── RecyclerViewAnimations ├── .gitignore ├── .google │ └── packaging.yaml ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── examples │ │ │ └── android │ │ │ └── com │ │ │ └── recyclerviewanimations │ │ │ └── MainActivity.java │ │ └── res │ │ ├── layout │ │ ├── activity_main.xml │ │ └── item_layout.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── RecyclerViewKotlin ├── .google │ └── packaging.yaml ├── README.md ├── app │ ├── .gitignore │ ├── build.gradle │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── recyclersample │ │ │ ├── addFlower │ │ │ └── AddFlowerActivity.kt │ │ │ ├── data │ │ │ ├── DataSource.kt │ │ │ ├── Flower.kt │ │ │ └── Flowers.kt │ │ │ ├── flowerDetail │ │ │ ├── FlowerDetailActivity.kt │ │ │ └── FlowerDetailViewModel.kt │ │ │ └── flowerList │ │ │ ├── FlowersAdapter.kt │ │ │ ├── FlowersListActivity.kt │ │ │ ├── FlowersListViewModel.kt │ │ │ └── HeaderAdapter.kt │ │ └── res │ │ ├── drawable-v24 │ │ ├── daffodil.png │ │ ├── dahlia.png │ │ ├── daisy.png │ │ ├── freesia.png │ │ ├── ic_launcher_foreground.xml │ │ ├── lilac.png │ │ ├── lily.png │ │ ├── marigold.png │ │ ├── peony.png │ │ ├── poppy.png │ │ ├── rose.png │ │ ├── sunflower.png │ │ └── tulip.png │ │ ├── drawable │ │ ├── ic_add_black_24dp.xml │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── add_flower_layout.xml │ │ ├── flower_detail_activity.xml │ │ ├── flower_item.xml │ │ └── header_item.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 ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── RecyclerViewSimple ├── .gitignore ├── app │ ├── .gitignore │ ├── build.gradle │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── recyclersample │ │ │ ├── Datasource.kt │ │ │ ├── FlowerAdapter.kt │ │ │ └── MainActivity.kt │ │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ └── flower_item.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 ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── SimpleTransition ├── .gitignore ├── .google │ └── packaging.yaml ├── README.md ├── TransitionsOnJbEmulator.png ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── android │ │ │ └── example │ │ │ └── simpletransition │ │ │ └── MainActivity.java │ │ └── res │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── SwipeRefreshLayoutBasic ├── .google │ └── packaging.yaml ├── Application │ ├── build.gradle │ ├── src │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── android │ │ │ │ ├── common │ │ │ │ ├── activities │ │ │ │ │ └── SampleActivityBase.java │ │ │ │ ├── dummydata │ │ │ │ │ └── Cheeses.java │ │ │ │ ├── logger │ │ │ │ │ ├── Log.java │ │ │ │ │ ├── LogFragment.java │ │ │ │ │ ├── LogNode.java │ │ │ │ │ ├── LogView.java │ │ │ │ │ ├── LogWrapper.java │ │ │ │ │ └── MessageOnlyLogFilter.java │ │ │ │ └── view │ │ │ │ │ ├── SlidingTabLayout.java │ │ │ │ │ └── SlidingTabStrip.java │ │ │ │ └── swiperefreshlayoutbasic │ │ │ │ ├── MainActivity.java │ │ │ │ └── SwipeRefreshLayoutBasicFragment.java │ │ │ └── res │ │ │ ├── drawable-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── tile.9.png │ │ │ ├── drawable-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── layout-w720dp │ │ │ └── activity_main.xml │ │ │ ├── layout │ │ │ ├── activity_main.xml │ │ │ └── fragment_sample.xml │ │ │ ├── menu │ │ │ ├── main.xml │ │ │ └── main_menu.xml │ │ │ ├── values-sw600dp │ │ │ ├── template-dimens.xml │ │ │ └── template-styles.xml │ │ │ ├── values-v11 │ │ │ └── template-styles.xml │ │ │ ├── values-v21 │ │ │ ├── base-colors.xml │ │ │ └── base-template-styles.xml │ │ │ └── values │ │ │ ├── base-strings.xml │ │ │ ├── colors.xml │ │ │ ├── fragmentview_strings.xml │ │ │ ├── strings.xml │ │ │ ├── template-dimens.xml │ │ │ └── template-styles.xml │ └── tests │ │ ├── AndroidManifest.xml │ │ └── src │ │ └── com │ │ └── example │ │ └── android │ │ └── swiperefreshlayoutbasic │ │ └── tests │ │ └── SampleTests.java ├── README.md ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── SwipeRefreshMultipleViews ├── .google │ └── packaging.yaml ├── Application │ ├── build.gradle │ ├── src │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── android │ │ │ │ ├── common │ │ │ │ ├── activities │ │ │ │ │ └── SampleActivityBase.java │ │ │ │ ├── dummydata │ │ │ │ │ └── Cheeses.java │ │ │ │ ├── logger │ │ │ │ │ ├── Log.java │ │ │ │ │ ├── LogFragment.java │ │ │ │ │ ├── LogNode.java │ │ │ │ │ ├── LogView.java │ │ │ │ │ ├── LogWrapper.java │ │ │ │ │ └── MessageOnlyLogFilter.java │ │ │ │ └── view │ │ │ │ │ ├── SlidingTabLayout.java │ │ │ │ │ └── SlidingTabStrip.java │ │ │ │ └── swiperefreshmultipleviews │ │ │ │ ├── MainActivity.java │ │ │ │ ├── MultiSwipeRefreshLayout.java │ │ │ │ └── SwipeRefreshMultipleViewsFragment.java │ │ │ └── res │ │ │ ├── drawable-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── tile.9.png │ │ │ ├── drawable-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── layout-w720dp │ │ │ └── activity_main.xml │ │ │ ├── layout │ │ │ ├── activity_main.xml │ │ │ └── fragment_sample.xml │ │ │ ├── menu │ │ │ ├── main.xml │ │ │ └── main_menu.xml │ │ │ ├── values-sw600dp │ │ │ ├── template-dimens.xml │ │ │ └── template-styles.xml │ │ │ ├── values-v11 │ │ │ └── template-styles.xml │ │ │ ├── values-v21 │ │ │ ├── base-colors.xml │ │ │ └── base-template-styles.xml │ │ │ └── values │ │ │ ├── base-strings.xml │ │ │ ├── color.xml │ │ │ ├── fragmentview_strings.xml │ │ │ ├── strings.xml │ │ │ ├── template-dimens.xml │ │ │ └── template-styles.xml │ └── tests │ │ ├── AndroidManifest.xml │ │ └── src │ │ └── com │ │ └── example │ │ └── android │ │ └── swiperefreshmultipleviews │ │ └── tests │ │ └── SampleTests.java ├── README.md ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── ViewPager2 ├── .gitignore ├── .google │ └── packaging.yaml ├── README.md ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── androidx │ │ │ └── viewpager2 │ │ │ └── integration │ │ │ └── testapp │ │ │ └── test │ │ │ ├── BaseTest.kt │ │ │ ├── FakeDragTest.kt │ │ │ ├── MarginPageTransformerTest.kt │ │ │ ├── MutableCollectionBaseTest.kt │ │ │ ├── MutableCollectionFragmentTest.kt │ │ │ ├── MutableCollectionViewTest.kt │ │ │ ├── PreviewPagesTest.kt │ │ │ ├── TabLayoutTest.kt │ │ │ ├── ViewPagerBaseTest.kt │ │ │ ├── ViewPagerFragmentTest.kt │ │ │ ├── ViewPagerViewTest.kt │ │ │ └── util │ │ │ ├── AnimationVerifier.kt │ │ │ ├── EventRecorder.kt │ │ │ ├── RetryBlock.kt │ │ │ ├── ViewInteractions.kt │ │ │ ├── ViewPagerActions.kt │ │ │ └── ViewPagerIdleWatcher.kt │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── androidx │ │ │ └── viewpager2 │ │ │ └── integration │ │ │ └── testapp │ │ │ ├── BaseCardActivity.kt │ │ │ ├── BrowseActivity.kt │ │ │ ├── CardFragmentActivity.kt │ │ │ ├── CardViewActivity.kt │ │ │ ├── CardViewTabLayoutActivity.kt │ │ │ ├── FakeDragActivity.kt │ │ │ ├── MutableCollectionBaseActivity.kt │ │ │ ├── MutableCollectionFragmentActivity.kt │ │ │ ├── MutableCollectionViewActivity.kt │ │ │ ├── NestedScrollableHost.kt │ │ │ ├── OrientationController.kt │ │ │ ├── PageTransformerActivity.kt │ │ │ ├── PageTransformerController.kt │ │ │ ├── ParallelNestedScrollingActivity.kt │ │ │ ├── PreviewPagesActivity.kt │ │ │ ├── UserInputController.kt │ │ │ └── cards │ │ │ ├── Card.kt │ │ │ ├── CardView.kt │ │ │ └── CardViewAdapter.kt │ │ └── res │ │ ├── drawable-hdpi │ │ └── app_sample_code.png │ │ ├── drawable-mdpi │ │ └── app_sample_code.png │ │ ├── drawable-nodpi │ │ └── jetpack_logo.png │ │ ├── drawable │ │ └── border.xml │ │ ├── layout-land │ │ ├── activity_fakedrag.xml │ │ ├── activity_no_tablayout.xml │ │ ├── activity_tablayout.xml │ │ ├── controls.xml │ │ └── controls_fakedrag.xml │ │ ├── layout │ │ ├── activity_fakedrag.xml │ │ ├── activity_mutable_collection.xml │ │ ├── activity_no_tablayout.xml │ │ ├── activity_page_transformer.xml │ │ ├── activity_tablayout.xml │ │ ├── activity_viewpager2.xml │ │ ├── controls.xml │ │ ├── controls_fakedrag.xml │ │ ├── item_card_layout.xml │ │ ├── item_mutable_collection.xml │ │ ├── item_nested_recyclerviews.xml │ │ └── item_preview_pages.xml │ │ ├── values-land │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ └── strings.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── screenshots │ ├── viewpager2-mutable-collection.png │ ├── viewpager2-tablayout.png │ └── viewpager2.png └── settings.gradle └── WebView ├── .gitignore ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── android │ │ └── samples │ │ └── webviewdemo │ │ └── MainActivityTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ ├── index.html │ │ ├── main.js │ │ └── style.css │ ├── java │ │ └── com │ │ │ └── android │ │ │ └── samples │ │ │ └── webviewdemo │ │ │ ├── JsObject.kt │ │ │ └── MainActivity.kt │ └── res │ │ ├── drawable-v24 │ │ ├── ic_launcher_foreground.xml │ │ ├── partly_cloudy.png │ │ ├── rain.png │ │ └── sunny.png │ │ ├── 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-night │ │ └── colors.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── android │ └── samples │ └── webviewdemo │ └── ExampleUnitTest.kt ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── sampleData └── weather.json └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | # built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # Mac files 6 | .DS_Store 7 | 8 | # files for the dex VM 9 | *.dex 10 | 11 | # Java class files 12 | *.class 13 | 14 | # generated files 15 | bin/ 16 | gen/ 17 | 18 | # Ignore gradle files 19 | .gradle/ 20 | build/ 21 | 22 | # Local configuration file (sdk path, etc) 23 | local.properties 24 | 25 | # Proguard folder generated by Eclipse 26 | proguard/ 27 | proguard-project.txt 28 | 29 | # Eclipse files 30 | .project 31 | .classpath 32 | .settings/ 33 | 34 | # Android Studio/IDEA 35 | *.iml 36 | .idea 37 | -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | /.idea/workspace.xml 6 | /.idea/libraries 7 | .DS_Store 8 | /build 9 | /captures 10 | -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/.google/packaging.yaml: -------------------------------------------------------------------------------- 1 | 2 | # GOOGLE SAMPLE PACKAGING DATA 3 | # 4 | # This file is used by Google as part of our samples packaging process. 5 | # End users may safely ignore this file. It has no relevance to other systems. 6 | --- 7 | status: PUBLISHED 8 | technologies: [Android] 9 | categories: [Views Widgets] 10 | languages: [Java] 11 | solutions: [Mobile] 12 | github: android/views-widgets 13 | license: apache2 14 | -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 29 5 | 6 | defaultConfig { 7 | applicationId 'examples.android.com.interpolatorplayground' 8 | minSdkVersion 21 9 | targetSdkVersion 29 10 | versionCode 1 11 | versionName "1.0" 12 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | productFlavors { 21 | } 22 | } 23 | 24 | dependencies { 25 | implementation 'androidx.appcompat:appcompat:1.1.0' 26 | } 27 | -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Volumes/Android/androidSdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/AnimationsInterpolatorPlayground/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/AnimationsInterpolatorPlayground/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/AnimationsInterpolatorPlayground/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/AnimationsInterpolatorPlayground/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/AnimationsInterpolatorPlayground/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | #3F51B5 16 | #303F9F 17 | #FF4081 18 | 19 | -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | 16 | 16dp 17 | 16dp 18 | 19 | -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | google() 6 | mavenCentral() 7 | } 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:4.2.1' 10 | 11 | // NOTE: Do not place your application dependencies here; they belong 12 | // in the individual module build.gradle files 13 | } 14 | } 15 | 16 | allprojects { 17 | repositories { 18 | google() 19 | mavenCentral() 20 | } 21 | } 22 | 23 | task clean(type: Delete) { 24 | delete rootProject.buildDir 25 | } 26 | -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | org.gradle.jvmargs=-Xmx1536m 13 | 14 | android.enableJetifier=true 15 | android.useAndroidX=true 16 | 17 | # When configured, Gradle will run in incubating parallel mode. 18 | # This option should only be used with decoupled projects. More details, visit 19 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 20 | # org.gradle.parallel=true 21 | -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/AnimationsInterpolatorPlayground/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Aug 24 16:52:44 PDT 2016 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip 7 | -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/AnimationsInterpolatorPlayground/screenshot.png -------------------------------------------------------------------------------- /AnimationsInterpolatorPlayground/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /CardView/.google/packaging.yaml: -------------------------------------------------------------------------------- 1 | 2 | # GOOGLE SAMPLE PACKAGING DATA 3 | # 4 | # This file is used by Google as part of our samples packaging process. 5 | # End users may safely ignore this file. It has no relevance to other systems. 6 | --- 7 | status: PUBLISHED 8 | technologies: [Android] 9 | categories: [Views Widgets] 10 | languages: [Java] 11 | solutions: [Mobile] 12 | github: android/views-widgets 13 | license: apache2 14 | -------------------------------------------------------------------------------- /CardView/Application/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/CardView/Application/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /CardView/Application/src/main/res/drawable-hdpi/tile.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/CardView/Application/src/main/res/drawable-hdpi/tile.9.png -------------------------------------------------------------------------------- /CardView/Application/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/CardView/Application/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /CardView/Application/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/CardView/Application/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /CardView/Application/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/CardView/Application/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /CardView/Application/src/main/res/values-sw600dp/template-dimens.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | @dimen/margin_huge 22 | @dimen/margin_medium 23 | 24 | 25 | -------------------------------------------------------------------------------- /CardView/Application/src/main/res/values-sw600dp/template-styles.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /CardView/Application/src/main/res/values-v11/template-styles.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /CardView/Application/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | #71C3DE 19 | -------------------------------------------------------------------------------- /CardView/Application/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 16dp 20 | 16dp 21 | 70dp 22 | 23 | -------------------------------------------------------------------------------- /CardView/README.md: -------------------------------------------------------------------------------- 1 | 2 | Android CardView Sample Sample 3 | =================================== 4 | 5 | This sample demonstrates how to use CardView introduced in the support library in 6 | Android 5.0. 7 | 8 | Pre-requisites 9 | -------------- 10 | 11 | - Android SDK 28 12 | - Android Build Tools v28.0.3 13 | - Android Support Repository 14 | 15 | Getting Started 16 | --------------- 17 | 18 | This sample uses the Gradle build system. To build this project, use the 19 | "gradlew build" command or use "Import Project" in Android Studio. 20 | 21 | Support 22 | ------- 23 | 24 | - Stack Overflow: http://stackoverflow.com/questions/tagged/android 25 | 26 | If you've found an error in this sample, please file an issue: 27 | https://github.com/googlesamples/android/views-widgets 28 | 29 | Patches are encouraged, and may be submitted by forking this project and 30 | submitting a pull request through GitHub. Please see CONTRIBUTING.md for more details. 31 | -------------------------------------------------------------------------------- /CardView/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /CardView/gradle.properties: -------------------------------------------------------------------------------- 1 | 2 | # Project-wide Gradle settings. 3 | 4 | # IDE (e.g. Android Studio) users: 5 | # Settings specified in this file will override any Gradle settings 6 | # configured through the IDE. 7 | 8 | # For more details on how to configure your build environment visit 9 | # http://www.gradle.org/docs/current/userguide/build_environment.html 10 | 11 | # Specifies the JVM arguments used for the daemon process. 12 | # The setting is particularly useful for tweaking memory settings. 13 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 14 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 15 | 16 | # When configured, Gradle will run in incubating parallel mode. 17 | # This option should only be used with decoupled projects. More details, visit 18 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 19 | # org.gradle.parallel=true 20 | 21 | -------------------------------------------------------------------------------- /CardView/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/CardView/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /CardView/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /CardView/settings.gradle: -------------------------------------------------------------------------------- 1 | include 'Application' 2 | -------------------------------------------------------------------------------- /CardViewKotlin/.google/packaging.yaml: -------------------------------------------------------------------------------- 1 | 2 | # GOOGLE SAMPLE PACKAGING DATA 3 | # 4 | # This file is used by Google as part of our samples packaging process. 5 | # End users may safely ignore this file. It has no relevance to other systems. 6 | --- 7 | status: PUBLISHED 8 | technologies: [Android] 9 | categories: [Views Widgets] 10 | languages: [Kotlin] 11 | solutions: [Mobile] 12 | github: android/views-widgets 13 | license: apache2 14 | -------------------------------------------------------------------------------- /CardViewKotlin/Application/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/CardViewKotlin/Application/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /CardViewKotlin/Application/src/main/res/drawable-hdpi/tile.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/CardViewKotlin/Application/src/main/res/drawable-hdpi/tile.9.png -------------------------------------------------------------------------------- /CardViewKotlin/Application/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/CardViewKotlin/Application/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /CardViewKotlin/Application/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/CardViewKotlin/Application/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /CardViewKotlin/Application/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/CardViewKotlin/Application/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /CardViewKotlin/Application/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | #71C3DE 20 | -------------------------------------------------------------------------------- /CardViewKotlin/Application/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /RecyclerView/Application/src/main/res/values-v11/template-styles.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /SwipeRefreshLayoutBasic/Application/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | #B6DB49 5 | #99CC00 6 | #8ABD00 7 | #7CAF00 8 | 9 | -------------------------------------------------------------------------------- /SwipeRefreshLayoutBasic/Application/src/main/res/values/fragmentview_strings.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | Show Log 18 | Hide Log 19 | 20 | -------------------------------------------------------------------------------- /SwipeRefreshLayoutBasic/Application/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | Refresh 21 | 22 | -------------------------------------------------------------------------------- /SwipeRefreshLayoutBasic/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /SwipeRefreshLayoutBasic/gradle.properties: -------------------------------------------------------------------------------- 1 | 2 | # Project-wide Gradle settings. 3 | 4 | # IDE (e.g. Android Studio) users: 5 | # Settings specified in this file will override any Gradle settings 6 | # configured through the IDE. 7 | 8 | # For more details on how to configure your build environment visit 9 | # http://www.gradle.org/docs/current/userguide/build_environment.html 10 | 11 | # Specifies the JVM arguments used for the daemon process. 12 | # The setting is particularly useful for tweaking memory settings. 13 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 14 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 15 | 16 | # When configured, Gradle will run in incubating parallel mode. 17 | # This option should only be used with decoupled projects. More details, visit 18 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 19 | # org.gradle.parallel=true 20 | 21 | -------------------------------------------------------------------------------- /SwipeRefreshLayoutBasic/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/SwipeRefreshLayoutBasic/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /SwipeRefreshLayoutBasic/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /SwipeRefreshLayoutBasic/settings.gradle: -------------------------------------------------------------------------------- 1 | include 'Application' 2 | -------------------------------------------------------------------------------- /SwipeRefreshMultipleViews/.google/packaging.yaml: -------------------------------------------------------------------------------- 1 | 2 | # GOOGLE SAMPLE PACKAGING DATA 3 | # 4 | # This file is used by Google as part of our samples packaging process. 5 | # End users may safely ignore this file. It has no relevance to other systems. 6 | --- 7 | status: PUBLISHED 8 | technologies: [Android] 9 | categories: [Views Widgets] 10 | languages: [Java] 11 | solutions: [Mobile] 12 | github: android/views-widgets 13 | license: apache2 14 | -------------------------------------------------------------------------------- /SwipeRefreshMultipleViews/Application/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/SwipeRefreshMultipleViews/Application/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /SwipeRefreshMultipleViews/Application/src/main/res/drawable-hdpi/tile.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/SwipeRefreshMultipleViews/Application/src/main/res/drawable-hdpi/tile.9.png -------------------------------------------------------------------------------- /SwipeRefreshMultipleViews/Application/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/SwipeRefreshMultipleViews/Application/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /SwipeRefreshMultipleViews/Application/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/SwipeRefreshMultipleViews/Application/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /SwipeRefreshMultipleViews/Application/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/SwipeRefreshMultipleViews/Application/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /SwipeRefreshMultipleViews/Application/src/main/res/values-sw600dp/template-dimens.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | @dimen/margin_huge 22 | @dimen/margin_medium 23 | 24 | 25 | -------------------------------------------------------------------------------- /SwipeRefreshMultipleViews/Application/src/main/res/values-v11/template-styles.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /SwipeRefreshMultipleViews/Application/src/main/res/values/color.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | #B6DB49 21 | #99CC00 22 | #8ABD00 23 | #7CAF00 24 | 25 | -------------------------------------------------------------------------------- /SwipeRefreshMultipleViews/Application/src/main/res/values/fragmentview_strings.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | Show Log 18 | Hide Log 19 | 20 | -------------------------------------------------------------------------------- /SwipeRefreshMultipleViews/Application/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | Clear items 21 | Refresh 22 | List is empty! Swipe down to refresh. 23 | 24 | -------------------------------------------------------------------------------- /SwipeRefreshMultipleViews/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /SwipeRefreshMultipleViews/gradle.properties: -------------------------------------------------------------------------------- 1 | 2 | # Project-wide Gradle settings. 3 | 4 | # IDE (e.g. Android Studio) users: 5 | # Settings specified in this file will override any Gradle settings 6 | # configured through the IDE. 7 | 8 | # For more details on how to configure your build environment visit 9 | # http://www.gradle.org/docs/current/userguide/build_environment.html 10 | 11 | # Specifies the JVM arguments used for the daemon process. 12 | # The setting is particularly useful for tweaking memory settings. 13 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 14 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 15 | 16 | # When configured, Gradle will run in incubating parallel mode. 17 | # This option should only be used with decoupled projects. More details, visit 18 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 19 | # org.gradle.parallel=true 20 | 21 | -------------------------------------------------------------------------------- /SwipeRefreshMultipleViews/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/SwipeRefreshMultipleViews/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /SwipeRefreshMultipleViews/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /SwipeRefreshMultipleViews/settings.gradle: -------------------------------------------------------------------------------- 1 | include 'Application' 2 | -------------------------------------------------------------------------------- /ViewPager2/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | .DS_Store 6 | /build 7 | /captures 8 | .externalNativeBuild 9 | -------------------------------------------------------------------------------- /ViewPager2/.google/packaging.yaml: -------------------------------------------------------------------------------- 1 | # GOOGLE SAMPLE PACKAGING DATA 2 | # 3 | # This file is used by Google as part of our samples packaging process. 4 | # End users may safely ignore this file. It has no relevance to other systems. 5 | --- 6 | status: PUBLISHED 7 | technologies: [Android] 8 | categories: [Views Widgets] 9 | languages: [Kotlin] 10 | solutions: [Mobile] 11 | github: android/views-widgets-samples 12 | level: BEGINNER 13 | apiRefs: 14 | - android:androidx.viewpager2.adapter.FragmentStateAdapter 15 | - android:androidx.viewpager2.adapter.FragmentViewHolder 16 | - android:androidx.viewpager2.adapter.StatefulAdapter 17 | - android:androidx.viewpager2.widget.ViewPager2 18 | license: apache2 19 | -------------------------------------------------------------------------------- /ViewPager2/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /ViewPager2/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /ViewPager2/app/src/main/res/drawable-hdpi/app_sample_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/ViewPager2/app/src/main/res/drawable-hdpi/app_sample_code.png -------------------------------------------------------------------------------- /ViewPager2/app/src/main/res/drawable-mdpi/app_sample_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/ViewPager2/app/src/main/res/drawable-mdpi/app_sample_code.png -------------------------------------------------------------------------------- /ViewPager2/app/src/main/res/drawable-nodpi/jetpack_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/ViewPager2/app/src/main/res/drawable-nodpi/jetpack_logo.png -------------------------------------------------------------------------------- /ViewPager2/app/src/main/res/drawable/border.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /ViewPager2/app/src/main/res/values-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 10dp 19 | 3dp 20 | -------------------------------------------------------------------------------- /ViewPager2/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | google() 6 | jcenter() 7 | } 8 | 9 | dependencies { 10 | classpath 'com.android.tools.build:gradle:3.4.2' 11 | classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50' 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | google() 18 | jcenter() 19 | } 20 | } 21 | 22 | task clean(type: Delete) { 23 | delete rootProject.buildDir 24 | } 25 | -------------------------------------------------------------------------------- /ViewPager2/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # Kotlin code style for this project: "official" or "obsolete": 15 | kotlin.code.style=official 16 | -------------------------------------------------------------------------------- /ViewPager2/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/ViewPager2/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /ViewPager2/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Jul 10 09:03:49 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.1.1-all.zip 7 | -------------------------------------------------------------------------------- /ViewPager2/screenshots/viewpager2-mutable-collection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/ViewPager2/screenshots/viewpager2-mutable-collection.png -------------------------------------------------------------------------------- /ViewPager2/screenshots/viewpager2-tablayout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/ViewPager2/screenshots/viewpager2-tablayout.png -------------------------------------------------------------------------------- /ViewPager2/screenshots/viewpager2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/ViewPager2/screenshots/viewpager2.png -------------------------------------------------------------------------------- /ViewPager2/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /WebView/.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 | -------------------------------------------------------------------------------- /WebView/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /WebView/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /WebView/app/src/main/res/drawable-v24/partly_cloudy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/WebView/app/src/main/res/drawable-v24/partly_cloudy.png -------------------------------------------------------------------------------- /WebView/app/src/main/res/drawable-v24/rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/WebView/app/src/main/res/drawable-v24/rain.png -------------------------------------------------------------------------------- /WebView/app/src/main/res/drawable-v24/sunny.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/WebView/app/src/main/res/drawable-v24/sunny.png -------------------------------------------------------------------------------- /WebView/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /WebView/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /WebView/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/WebView/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /WebView/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/WebView/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /WebView/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/WebView/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /WebView/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/WebView/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /WebView/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/WebView/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /WebView/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/WebView/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /WebView/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/WebView/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /WebView/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/WebView/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /WebView/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/WebView/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /WebView/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/WebView/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /WebView/app/src/main/res/values-night/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | #3700B3 20 | #BB86FC 21 | #03DAC5 22 | -------------------------------------------------------------------------------- /WebView/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | #6200EE 20 | #3700B3 21 | #03DAC5 22 | 23 | -------------------------------------------------------------------------------- /WebView/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | WebView Weather 19 | 20 | -------------------------------------------------------------------------------- /WebView/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/views-widgets-samples/8c7b24bf4e4cde9f891363aaaa4afe9aa16eddfc/WebView/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /WebView/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2020 The Android Open Source Project 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | #Mon Aug 03 11:43:59 PDT 2020 18 | distributionBase=GRADLE_USER_HOME 19 | distributionPath=wrapper/dists 20 | zipStoreBase=GRADLE_USER_HOME 21 | zipStorePath=wrapper/dists 22 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip 23 | -------------------------------------------------------------------------------- /WebView/sampleData/weather.json: -------------------------------------------------------------------------------- 1 | { 2 | "newYork":{ 3 | "currentTemp":75, 4 | "highTemp":83, 5 | "lowTemp":64, 6 | "chancePrecip":90, 7 | "humidity":23, 8 | "description":"Rainy" 9 | }, 10 | "sanFrancisco":{ 11 | "currentTemp":70, 12 | "highTemp":75, 13 | "lowTemp":61, 14 | "chancePrecip":0, 15 | "humidity":2, 16 | "description":"Clear Sky" 17 | }, 18 | "london":{ 19 | "currentTemp":88, 20 | "highTemp":89, 21 | "lowTemp":67, 22 | "chancePrecip":15, 23 | "humidity":36, 24 | "description":"Partly Cloudy" 25 | } 26 | } -------------------------------------------------------------------------------- /WebView/settings.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | rootProject.name='WebView Demo' 18 | include ':app' 19 | --------------------------------------------------------------------------------