├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── MaterialThemeBuilder ├── README.md ├── app │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── ic_launcher-web.png │ │ ├── java │ │ └── io │ │ │ └── material │ │ │ └── materialthemebuilder │ │ │ ├── App.kt │ │ │ ├── data │ │ │ └── PreferenceRepository.kt │ │ │ ├── ui │ │ │ ├── MainActivity.kt │ │ │ ├── MainViewPagerAdapter.kt │ │ │ ├── component │ │ │ │ ├── BottomSheetFragment.kt │ │ │ │ ├── Component.kt │ │ │ │ ├── ComponentAdapter.kt │ │ │ │ ├── ComponentFragment.kt │ │ │ │ └── ComponentViewHolder.kt │ │ │ ├── instruction │ │ │ │ └── InstructionsFragment.kt │ │ │ └── themesummary │ │ │ │ ├── Subsystem.kt │ │ │ │ ├── SubsystemAdapter.kt │ │ │ │ ├── SubsystemViewHolder.kt │ │ │ │ └── ThemeSummaryFragment.kt │ │ │ └── widget │ │ │ ├── ColorAttributeView.kt │ │ │ ├── ColorDotView.kt │ │ │ ├── LabelLinkView.kt │ │ │ ├── ShapeAttributeView.kt │ │ │ └── TypeAttributeView.kt │ │ └── res │ │ ├── anim │ │ ├── bottom_sheet_slide_in.xml │ │ └── bottom_sheet_slide_out.xml │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── ic_add_on_secondary_24dp.xml │ │ ├── ic_bookmark_24dp.xml │ │ ├── ic_bookmark_control_normal_24dp.xml │ │ ├── ic_bookmark_on_surface_24dp.xml │ │ ├── ic_colorize_24dp.xml │ │ ├── ic_favorite_on_surface_24dp.xml │ │ ├── ic_format_size_24dp.xml │ │ ├── ic_inbox_24dp.xml │ │ ├── ic_launcher_background.xml │ │ ├── ic_material_icon_24dp.xml │ │ ├── ic_menu_control_normal_24dp.xml │ │ ├── ic_menu_on_surface_24dp.xml │ │ ├── ic_more_vert_on_surface_24dp.xml │ │ ├── ic_music_note_on_surface_24dp.xml │ │ ├── ic_news_on_surface_24dp.xml │ │ ├── ic_open_in_new_24dp.xml │ │ ├── ic_place_on_surface_24dp.xml │ │ ├── ic_rounded_corner_24dp.xml │ │ ├── ic_search_control_normal_24dp.xml │ │ ├── ic_search_on_surface_24dp.xml │ │ ├── ic_send_24dp.xml │ │ ├── ic_share_control_normal_24dp.xml │ │ ├── ic_share_on_surface_24dp.xml │ │ ├── ic_star_24dp.xml │ │ └── sample_image.png │ │ ├── font │ │ └── roboto_black_italic.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── color_attribute_view_layout.xml │ │ ├── component_bottom_app_bar.xml │ │ ├── component_bottom_navigation.xml │ │ ├── component_bottom_sheet.xml │ │ ├── component_buttons.xml │ │ ├── component_cards.xml │ │ ├── component_checkbox.xml │ │ ├── component_chips.xml │ │ ├── component_dialog.xml │ │ ├── component_drawer.xml │ │ ├── component_fabs.xml │ │ ├── component_radio_button.xml │ │ ├── component_snackbar.xml │ │ ├── component_switch.xml │ │ ├── component_tabs.xml │ │ ├── component_text_field.xml │ │ ├── component_top_app_bar.xml │ │ ├── drawer_header_layout.xml │ │ ├── fragment_bottom_sheet.xml │ │ ├── fragment_component.xml │ │ ├── fragment_instructions.xml │ │ ├── fragment_theme_summary.xml │ │ ├── label_view_layout.xml │ │ ├── shape_attribute_view_layout.xml │ │ ├── subsystem_color.xml │ │ ├── subsystem_shape.xml │ │ ├── subsystem_type.xml │ │ └── type_attribute_view_layout.xml │ │ ├── menu │ │ ├── bottom_app_bar_menu.xml │ │ ├── bottom_navigation_menu.xml │ │ ├── navigation_view_menu.xml │ │ └── top_app_bar_menu.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── values-night │ │ └── themes.xml │ │ └── values │ │ ├── attrs.xml │ │ ├── color.xml │ │ ├── dimens.xml │ │ ├── font_certs.xml │ │ ├── ic_launcher_background.xml │ │ ├── motion.xml │ │ ├── preloaded_fonts.xml │ │ ├── shape.xml │ │ ├── strings.xml │ │ ├── styles.xml │ │ ├── themes.xml │ │ └── type.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── Owl ├── .google │ └── packaging.yaml ├── README.md ├── app │ ├── build.gradle │ ├── proguard-rules.pro │ ├── sampledata │ │ ├── courses.json │ │ ├── lessons.json │ │ ├── steps.json │ │ └── topics.json │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── materialstudies │ │ │ └── owl │ │ │ ├── OwlApplication.kt │ │ │ ├── model │ │ │ ├── Course.kt │ │ │ ├── Lesson.kt │ │ │ └── Topic.kt │ │ │ ├── ui │ │ │ ├── MainActivity.kt │ │ │ ├── featured │ │ │ │ ├── FeaturedAdapter.kt │ │ │ │ └── FeaturedFragment.kt │ │ │ ├── learn │ │ │ │ ├── LearnFragment.kt │ │ │ │ └── RelatedAdapter.kt │ │ │ ├── lessons │ │ │ │ ├── LessonAdapter.kt │ │ │ │ ├── LessonBottomSheetBehavior.kt │ │ │ │ ├── LessonFragment.kt │ │ │ │ ├── LessonsSheetFragment.kt │ │ │ │ └── StepsAdapter.kt │ │ │ ├── mycourses │ │ │ │ ├── MyCoursesAdapter.kt │ │ │ │ └── MyCoursesFragment.kt │ │ │ ├── onboarding │ │ │ │ ├── OnboardingFragment.kt │ │ │ │ ├── TopicThumbnailDrawable.kt │ │ │ │ ├── TopicThumbnailTransformation.kt │ │ │ │ └── TopicsAdapter.kt │ │ │ └── search │ │ │ │ ├── SearchAdapter.kt │ │ │ │ └── SearchFragment.kt │ │ │ └── util │ │ │ ├── AnimationUtils.kt │ │ │ ├── BindingAdapters.kt │ │ │ ├── ContentViewBindingDelegate.kt │ │ │ ├── GlideUtils.kt │ │ │ ├── GraphicsExtensions.kt │ │ │ ├── ShapeAppearanceTransformation.kt │ │ │ ├── SpringAddItemAnimator.kt │ │ │ ├── ViewExtensions.kt │ │ │ └── transition │ │ │ ├── DiagonalSlide.kt │ │ │ ├── MaterialContainerTransition.kt │ │ │ └── Recede.kt │ │ └── res │ │ ├── anim │ │ ├── shrink_fade_out_center.xml │ │ ├── slide_in_up.xml │ │ └── slide_out_down.xml │ │ ├── animator │ │ └── topic_selection.xml │ │ ├── color │ │ ├── bottom_nav_item.xml │ │ ├── divider.xml │ │ ├── primary_sheet.xml │ │ └── topic_tint.xml │ │ ├── drawable-v26 │ │ ├── ic_launcher_background.xml │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── asl_featured.xml │ │ ├── asl_my_courses.xml │ │ ├── asl_search.xml │ │ ├── avatar_outline.xml │ │ ├── avd_featured_off.xml │ │ ├── avd_featured_on.xml │ │ ├── avd_my_courses_off.xml │ │ ├── avd_my_courses_on.xml │ │ ├── avd_search_off.xml │ │ ├── avd_search_on.xml │ │ ├── course_image_placeholder.xml │ │ ├── divider.xml │ │ ├── ic_account.xml │ │ ├── ic_add.xml │ │ ├── ic_add_alt.xml │ │ ├── ic_arrow_down.xml │ │ ├── ic_avatar_placeholder.xml │ │ ├── ic_back.xml │ │ ├── ic_checkmark.xml │ │ ├── ic_compass.xml │ │ ├── ic_course.xml │ │ ├── ic_featured.xml │ │ ├── ic_gear.xml │ │ ├── ic_lockup_blue.xml │ │ ├── ic_lockup_white.xml │ │ ├── ic_logo.xml │ │ ├── ic_my_courses.xml │ │ ├── ic_pause.xml │ │ ├── ic_play.xml │ │ ├── ic_playlist.xml │ │ ├── ic_search.xml │ │ ├── inset_divider.xml │ │ ├── learn_image_scrim.xml │ │ ├── lesson_video_scrim.xml │ │ ├── seekbar_track.xml │ │ ├── sheet_expand.xml │ │ ├── small_component_foreground.xml │ │ ├── stroked_course_image_placeholder.xml │ │ └── topic_foreground.xml │ │ ├── font │ │ ├── rubik.xml │ │ ├── rubik_bold.xml │ │ └── rubik_medium.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── course_item.xml │ │ ├── featured_item.xml │ │ ├── fragment_featured.xml │ │ ├── fragment_learn.xml │ │ ├── fragment_lesson.xml │ │ ├── fragment_lessons_sheet.xml │ │ ├── fragment_my_courses.xml │ │ ├── fragment_onboarding.xml │ │ ├── fragment_search.xml │ │ ├── lesson_item.xml │ │ ├── onboarding_topic_item.xml │ │ ├── related_course_item.xml │ │ ├── search_item.xml │ │ └── step_item.xml │ │ ├── menu │ │ ├── account.xml │ │ ├── learn.xml │ │ └── main.xml │ │ ├── mipmap-anydpi-v26 │ │ └── ic_launcher.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 │ │ ├── navigation │ │ └── navigation.xml │ │ ├── values-h600dp │ │ └── dimens.xml │ │ ├── values-night │ │ ├── aliases.xml │ │ └── theme.xml │ │ ├── values-v29 │ │ └── color.xml │ │ ├── values-w600dp │ │ └── dimens.xml │ │ └── values │ │ ├── aliases.xml │ │ ├── attrs.xml │ │ ├── color.xml │ │ ├── dimens.xml │ │ ├── font_certs.xml │ │ ├── ids.xml │ │ ├── preloaded_fonts.xml │ │ ├── shape.xml │ │ ├── strings.xml │ │ ├── styles.xml │ │ ├── theme.xml │ │ └── type.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── screenshots │ ├── collage_header.png │ ├── color_header.png │ ├── owl_demo.gif │ ├── owl_demo_dark.gif │ ├── shape_header.png │ └── type_header.png └── settings.gradle ├── README.md ├── Reply ├── .google │ └── packaging.yaml ├── README.md ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── ic_launcher-web.png │ │ ├── java │ │ └── com │ │ │ └── materialstudies │ │ │ └── reply │ │ │ ├── data │ │ │ ├── Account.kt │ │ │ ├── AccountStore.kt │ │ │ ├── Email.kt │ │ │ ├── EmailAttachment.kt │ │ │ ├── EmailFolder.kt │ │ │ ├── EmailStore.kt │ │ │ ├── SearchSuggestion.kt │ │ │ └── SearchSuggestionStore.kt │ │ │ ├── ui │ │ │ ├── MainActivity.kt │ │ │ ├── MenuBottomSheetDialogFragment.kt │ │ │ ├── common │ │ │ │ ├── EmailAttachmentAdapter.kt │ │ │ │ └── EmailAttachmentViewHolder.kt │ │ │ ├── compose │ │ │ │ └── ComposeFragment.kt │ │ │ ├── email │ │ │ │ ├── EmailAttachmentGridAdapter.kt │ │ │ │ └── EmailFragment.kt │ │ │ ├── home │ │ │ │ ├── EmailAdapter.kt │ │ │ │ ├── EmailSwipeActionDrawable.kt │ │ │ │ ├── EmailViewHolder.kt │ │ │ │ ├── HomeFragment.kt │ │ │ │ ├── Mailbox.kt │ │ │ │ └── ReboundingSwipeActionCallback.kt │ │ │ ├── nav │ │ │ │ ├── AccountAdapter.kt │ │ │ │ ├── AccountViewHolder.kt │ │ │ │ ├── BottomNavDrawerFragment.kt │ │ │ │ ├── BottomNavigationDrawerCallback.kt │ │ │ │ ├── NavigationAdapter.kt │ │ │ │ ├── NavigationModel.kt │ │ │ │ ├── NavigationModelItem.kt │ │ │ │ ├── NavigationViewHolder.kt │ │ │ │ ├── OnSandwichSlideAction.kt │ │ │ │ ├── OnSlideAction.kt │ │ │ │ ├── OnStateChangedAction.kt │ │ │ │ └── SemiCircleEdgeCutoutTreatment.kt │ │ │ └── search │ │ │ │ └── SearchFragment.kt │ │ │ └── util │ │ │ ├── AnimationUtils.kt │ │ │ ├── BindingAdapter.kt │ │ │ ├── ContentViewBindingDelegate.kt │ │ │ ├── ContextExtensions.kt │ │ │ └── ViewExtensions.kt │ │ └── res │ │ ├── animator │ │ ├── fab_hide.xml │ │ └── fab_show.xml │ │ ├── color │ │ ├── color_navigation_drawer_menu_item.xml │ │ ├── color_on_primary_surface_divider.xml │ │ ├── color_on_primary_surface_emphasis_disabled.xml │ │ ├── color_on_primary_surface_emphasis_high.xml │ │ ├── color_on_primary_surface_emphasis_medium.xml │ │ ├── color_on_surface_divider.xml │ │ ├── color_on_surface_emphasis_disabled.xml │ │ ├── color_on_surface_emphasis_high.xml │ │ └── color_on_surface_emphasis_medium.xml │ │ ├── drawable │ │ ├── asl_edit_reply.xml │ │ ├── avatar_0.jpg │ │ ├── avatar_1.jpeg │ │ ├── avatar_10.jpeg │ │ ├── avatar_2.jpg │ │ ├── avatar_3.jpg │ │ ├── avatar_4.jpg │ │ ├── avatar_5.jpeg │ │ ├── avatar_6.jpg │ │ ├── avatar_7.jpeg │ │ ├── avatar_8.jpeg │ │ ├── avatar_9.jpg │ │ ├── avatar_express.png │ │ ├── avatar_none.xml │ │ ├── avd_edit_to_reply.xml │ │ ├── avd_reply_to_edit.xml │ │ ├── bottom_app_bar_title_foreground.xml │ │ ├── divider.xml │ │ ├── ic_archive.xml │ │ ├── ic_arrow_back.xml │ │ ├── ic_arrow_down.xml │ │ ├── ic_arrow_drop_up.xml │ │ ├── ic_circle.xml │ │ ├── ic_close.xml │ │ ├── ic_close_small.xml │ │ ├── ic_delete.xml │ │ ├── ic_done.xml │ │ ├── ic_edit.xml │ │ ├── ic_forward.xml │ │ ├── ic_home.xml │ │ ├── ic_launcher_foreground.xml │ │ ├── ic_mic.xml │ │ ├── ic_reply.xml │ │ ├── ic_reply_all.xml │ │ ├── ic_reply_logo.xml │ │ ├── ic_schedule.xml │ │ ├── ic_search.xml │ │ ├── ic_settings.xml │ │ ├── ic_twotone_add_circle_outline.xml │ │ ├── ic_twotone_delete.xml │ │ ├── ic_twotone_drafts.xml │ │ ├── ic_twotone_error.xml │ │ ├── ic_twotone_folder.xml │ │ ├── ic_twotone_forward.xml │ │ ├── ic_twotone_inbox.xml │ │ ├── ic_twotone_send.xml │ │ ├── ic_twotone_star.xml │ │ ├── ic_twotone_star_on_background.xml │ │ ├── ic_twotone_stars.xml │ │ ├── nav_divider_top.xml │ │ ├── paris_1.jpg │ │ ├── paris_2.jpg │ │ ├── paris_3.jpg │ │ └── paris_4.jpg │ │ ├── font │ │ ├── work_sans.xml │ │ ├── work_sans_bold.xml │ │ ├── work_sans_extrabold.xml │ │ ├── work_sans_medium.xml │ │ └── work_sans_semibold.xml │ │ ├── layout │ │ ├── account_item_layout.xml │ │ ├── activity_main.xml │ │ ├── compose_recipient_chip.xml │ │ ├── email_attachment_grid_item_layout.xml │ │ ├── email_attachment_preview_item_layout.xml │ │ ├── email_item_layout.xml │ │ ├── fragment_bottom_nav_drawer.xml │ │ ├── fragment_compose.xml │ │ ├── fragment_email.xml │ │ ├── fragment_home.xml │ │ ├── fragment_search.xml │ │ ├── menu_bottom_sheet_dialog_layout.xml │ │ ├── nav_divider_item_layout.xml │ │ ├── nav_email_folder_item_layout.xml │ │ ├── nav_menu_item_layout.xml │ │ ├── search_suggestion_item.xml │ │ ├── search_suggestion_title.xml │ │ └── spinner_item_layout.xml │ │ ├── menu-v29 │ │ └── dark_theme_bottom_sheet_menu.xml │ │ ├── menu │ │ ├── bottom_app_bar_email_menu.xml │ │ ├── bottom_app_bar_home_menu.xml │ │ ├── bottom_app_bar_settings_menu.xml │ │ ├── dark_theme_bottom_sheet_menu.xml │ │ └── email_bottom_sheet_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 │ │ ├── navigation │ │ └── navigation_graph.xml │ │ ├── values-night │ │ └── themes.xml │ │ ├── values-v29 │ │ └── color.xml │ │ └── values │ │ ├── attrs.xml │ │ ├── color.xml │ │ ├── dimens.xml │ │ ├── elevation.xml │ │ ├── font_certs.xml │ │ ├── ids.xml │ │ ├── layout.xml │ │ ├── motion.xml │ │ ├── preloaded_fonts.xml │ │ ├── shape.xml │ │ ├── strings.xml │ │ ├── styles.xml │ │ ├── themes.xml │ │ └── type.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── screenshots │ ├── 1_home_screen.png │ ├── 2_navigation_drawer.png │ ├── 3_account_sandwich.png │ ├── 4_star_email_action.png │ ├── 5_email_details.png │ ├── 6_email_compose.png │ ├── collage_header.png │ ├── color_header.png │ ├── shape_header.png │ └── typography_header.png └── settings.gradle └── screenshots └── mdc_samples.gif /.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | captures 3 | *.iml 4 | out 5 | .idea 6 | prebuilts 7 | .DS_Store 8 | local.properties 9 | .gradle 10 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to Contribute 2 | 3 | We'd love to accept your patches and contributions to this project. There are 4 | just a few small guidelines you need to follow. 5 | 6 | ## Contributor License Agreement 7 | 8 | Contributions to this project must be accompanied by a Contributor License 9 | Agreement. You (or your employer) retain the copyright to your contribution; 10 | this simply gives us permission to use and redistribute your contributions as 11 | part of the project. Head over to to see 12 | your current agreements on file or to sign a new one. 13 | 14 | You generally only need to submit a CLA once, so if you've already submitted one 15 | (even if it was for a different project), you probably don't need to do it 16 | again. 17 | 18 | ## Code reviews 19 | 20 | All submissions, including submissions by project members, require review. We 21 | use GitHub pull requests for this purpose. Consult 22 | [GitHub Help](https://help.github.com/articles/about-pull-requests/) for more 23 | information on using pull requests. 24 | 25 | ## Community Guidelines 26 | 27 | This project follows 28 | [Google's Open Source Community Guidelines](https://opensource.google.com/conduct/). 29 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | apply plugin: 'kotlin-android' 3 | 4 | android { 5 | compileSdkVersion 30 6 | defaultConfig { 7 | applicationId "io.material.materialthemebuilder" 8 | minSdkVersion 23 9 | targetSdkVersion 30 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 | compileOptions { 21 | sourceCompatibility JavaVersion.VERSION_1_8 22 | targetCompatibility JavaVersion.VERSION_1_8 23 | } 24 | kotlinOptions { 25 | jvmTarget = "1.8" 26 | } 27 | } 28 | 29 | dependencies { 30 | implementation fileTree(dir: 'libs', include: ['*.jar']) 31 | 32 | // Kotlin 33 | implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" 34 | 35 | // AndroidX 36 | implementation 'androidx.appcompat:appcompat:1.2.0' 37 | implementation 'androidx.constraintlayout:constraintlayout:2.0.2' 38 | implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha06' 39 | implementation 'androidx.core:core-ktx:1.3.2' 40 | 41 | //MDC 42 | implementation 'com.google.android.material:material:1.2.1' 43 | } 44 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/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 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/java/io/material/materialthemebuilder/App.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 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 | package io.material.materialthemebuilder 18 | 19 | import android.app.Application 20 | import android.content.Context 21 | import io.material.materialthemebuilder.data.PreferenceRepository 22 | 23 | class App : Application() { 24 | 25 | lateinit var preferenceRepository: PreferenceRepository 26 | 27 | override fun onCreate() { 28 | super.onCreate() 29 | preferenceRepository = PreferenceRepository( 30 | getSharedPreferences(DEFAULT_PREFERENCES, Context.MODE_PRIVATE) 31 | ) 32 | } 33 | 34 | companion object { 35 | const val DEFAULT_PREFERENCES = "default_preferences" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/java/io/material/materialthemebuilder/ui/component/Component.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 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 | package io.material.materialthemebuilder.ui.component 18 | 19 | /** 20 | * Enumeration of all components to be displayed by [ComponentAdapter]. 21 | * 22 | * All components in this enum will be shown by [ComponentAdapter]. The order of the components 23 | * here will be the order they are displayed in by [ComponentAdapter]. 24 | */ 25 | enum class Component { 26 | BUTTON, 27 | FAB, 28 | CARD, 29 | TOP_APP_BAR, 30 | CHIP, 31 | DRAWER, 32 | TEXT_FIELD, 33 | BOTTOM_NAVIGATION, 34 | SWITCH, 35 | RADIO_BUTTON, 36 | CHECKBOX, 37 | BOTTOM_APP_BAR, 38 | TABS, 39 | SNACKBAR, 40 | DIALOG, 41 | BOTTOM_SHEET 42 | } 43 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/java/io/material/materialthemebuilder/ui/themesummary/Subsystem.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 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 | package io.material.materialthemebuilder.ui.themesummary 18 | 19 | /** 20 | * Enumeration of all subsystems to be displayed by [SubsystemAdapter]. 21 | * 22 | * All components in this enum will be shown by [SubsystemAdapter]. The order or the components 23 | * here will be the order they are displayed in by [SubsystemAdapter]. 24 | */ 25 | enum class Subsystem { 26 | COLOR, SHAPE, TYPE 27 | } 28 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/anim/bottom_sheet_slide_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 21 | 22 | 25 | 26 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/anim/bottom_sheet_slide_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 21 | 22 | 25 | 26 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_add_on_secondary_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_bookmark_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_bookmark_control_normal_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_bookmark_on_surface_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_colorize_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_favorite_on_surface_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_format_size_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_inbox_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_menu_control_normal_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_menu_on_surface_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_more_vert_on_surface_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_music_note_on_surface_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_news_on_surface_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_open_in_new_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_place_on_surface_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_rounded_corner_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_search_control_normal_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_search_on_surface_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_send_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/ic_star_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/drawable/sample_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/app/src/main/res/drawable/sample_image.png -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/font/roboto_black_italic.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 23 | 24 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/layout/fragment_component.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 23 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/layout/fragment_theme_summary.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 23 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 2dp 20 | 4dp 21 | 8dp 22 | 16dp 23 | 24dp 24 | 25 | @dimen/keyline_4 26 | 4dp 27 | 28 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | #FFFFFF 20 | 21 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/values/motion.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/app/src/main/res/values/preloaded_fonts.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | @font/roboto_black_italic 21 | 22 | 23 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/build.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019 Google Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software distributed under the License 9 | * 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | buildscript { 16 | ext { 17 | kotlin_version = '1.4.10' 18 | } 19 | repositories { 20 | google() 21 | jcenter() 22 | } 23 | dependencies{ 24 | classpath 'com.android.tools.build:gradle:4.1.0' 25 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 26 | } 27 | } 28 | 29 | allprojects { 30 | repositories { 31 | google() 32 | jcenter() 33 | } 34 | } 35 | 36 | task clean(type: Delete) { 37 | delete rootProject.buildDir 38 | } 39 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/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 | android.enableJetifier=true 10 | android.useAndroidX=true 11 | org.gradle.jvmargs=-Xmx1536m 12 | # When configured, Gradle will run in incubating parallel mode. 13 | # This option should only be used with decoupled projects. More details, visit 14 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 15 | # org.gradle.parallel=true 16 | 17 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/MaterialThemeBuilder/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /MaterialThemeBuilder/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jan 17 09:04:41 PST 2020 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.5-all.zip 7 | -------------------------------------------------------------------------------- /MaterialThemeBuilder/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /Owl/.google/packaging.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2020 The Android Open Source Project 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # 15 | # This file is used by Google as part of our samples packaging process. 16 | # End users may safely ignore this file. It has no relevance to other systems. 17 | --- 18 | status: PUBLISHED 19 | technologies: [Android] 20 | categories: [Material Components] 21 | languages: [Kotlin] 22 | solutions: [Mobile] 23 | github: material-components/material-components-android-examples 24 | level: ADVANCED 25 | license: apache2 26 | -------------------------------------------------------------------------------- /Owl/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 | -------------------------------------------------------------------------------- /Owl/app/sampledata/lessons.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": [ 3 | { 4 | "title": "An introduction to the Landscape", 5 | "formattedStepNumber": "01", 6 | "length": "4:14" 7 | }, 8 | { 9 | "title": "Movement and Expression", 10 | "formattedStepNumber": "02", 11 | "length": "7:28" 12 | }, 13 | { 14 | "title": "Composition and the Urban Canvas", 15 | "formattedStepNumber": "03", 16 | "length": "3:43" 17 | }, 18 | { 19 | "title": "Lighting Techniques and Aesthetics", 20 | "formattedStepNumber": "04", 21 | "length": "4:45" 22 | }, 23 | { 24 | "title": "Special Effects", 25 | "formattedStepNumber": "05", 26 | "length": "6:19" 27 | }, 28 | { 29 | "title": "Techniques with Structures", 30 | "formattedStepNumber": "06", 31 | "length": "9:41" 32 | }, 33 | { 34 | "title": "Deep Focus Using a Camera Dolly", 35 | "formattedStepNumber": "07", 36 | "length": "4:43" 37 | }, 38 | { 39 | "title": "Point of View Shots with Structures", 40 | "formattedStepNumber": "08", 41 | "length": "9:41" 42 | }, 43 | { 44 | "title": "Photojournalism: Street Art", 45 | "formattedStepNumber": "09", 46 | "length": "9:41" 47 | } 48 | ] 49 | } -------------------------------------------------------------------------------- /Owl/app/sampledata/steps.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": [ 3 | { 4 | "title": "Step 1", 5 | "body": "@string/step_0" 6 | }, 7 | { 8 | "title": "Step 2", 9 | "body": "@string/step_1" 10 | }, 11 | { 12 | "title": "Step 3", 13 | "body": "@string/step_2" 14 | }, 15 | { 16 | "title": "Step 4", 17 | "body": "@string/step_0" 18 | }, 19 | { 20 | "title": "Step 5", 21 | "body": "@string/step_1" 22 | }, 23 | { 24 | "title": "Step 6", 25 | "body": "@string/step_2" 26 | }, 27 | { 28 | "title": "Step 7", 29 | "body": "@string/step_0" 30 | }, 31 | { 32 | "title": "Step 8", 33 | "body": "@string/step_1" 34 | }, 35 | { 36 | "title": "Step 9", 37 | "body": "@string/step_2" 38 | } 39 | ] 40 | } -------------------------------------------------------------------------------- /Owl/app/sampledata/topics.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": [ 3 | { 4 | "name": "Architecture", 5 | "courses": "58" 6 | }, 7 | { 8 | "name": "Arts & Crafts", 9 | "courses": "121" 10 | }, 11 | { 12 | "name": "Business", 13 | "courses": "78" 14 | }, 15 | { 16 | "name": "Culinary", 17 | "courses": "118" 18 | }, 19 | { 20 | "name": "Design", 21 | "courses": "423" 22 | }, 23 | { 24 | "name": "Fashion", 25 | "courses": "92" 26 | }, 27 | { 28 | "name": "Film", 29 | "courses": "165" 30 | }, 31 | { 32 | "name": "Gaming", 33 | "courses": "164" 34 | }, 35 | { 36 | "name": "Illustration", 37 | "courses": "326" 38 | }, 39 | { 40 | "name": "Lifestyle", 41 | "courses": "305" 42 | }, 43 | { 44 | "name": "Music", 45 | "courses": "212" 46 | }, 47 | { 48 | "name": "Painting", 49 | "courses": "172" 50 | }, 51 | { 52 | "name": "Photography", 53 | "courses": "321" 54 | }, 55 | { 56 | "name": "Technology", 57 | "courses": "118" 58 | } 59 | ] 60 | } -------------------------------------------------------------------------------- /Owl/app/src/main/java/com/materialstudies/owl/OwlApplication.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 Google LLC 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 | * https://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 | package com.materialstudies.owl 18 | 19 | import android.app.Application 20 | import android.os.Build.VERSION.SDK_INT 21 | import android.os.Build.VERSION_CODES.Q 22 | import androidx.appcompat.app.AppCompatDelegate 23 | 24 | class OwlApplication : Application() { 25 | 26 | override fun onCreate() { 27 | super.onCreate() 28 | val nightMode = if (SDK_INT >= Q) { 29 | AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM 30 | } else { 31 | AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY 32 | } 33 | AppCompatDelegate.setDefaultNightMode(nightMode) 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Owl/app/src/main/java/com/materialstudies/owl/ui/lessons/LessonBottomSheetBehavior.kt: -------------------------------------------------------------------------------- 1 | package com.materialstudies.owl.ui.lessons 2 | 3 | import android.content.Context 4 | import android.util.AttributeSet 5 | import android.view.MotionEvent 6 | import android.view.View 7 | import androidx.coordinatorlayout.widget.CoordinatorLayout 8 | import com.google.android.material.bottomsheet.BottomSheetBehavior 9 | 10 | /** 11 | * A [BottomSheetBehavior] that helps to restrict touchable area depends on translationX 12 | */ 13 | class LessonBottomSheetBehavior(context: Context, attrs: AttributeSet?) : 14 | BottomSheetBehavior(context, attrs) { 15 | 16 | override fun onTouchEvent(parent: CoordinatorLayout, child: T, event: MotionEvent): Boolean { 17 | if (event.x < child.translationX) { 18 | return false 19 | } 20 | return super.onTouchEvent(parent, child, event) 21 | } 22 | } -------------------------------------------------------------------------------- /Owl/app/src/main/java/com/materialstudies/owl/ui/onboarding/TopicThumbnailTransformation.kt: -------------------------------------------------------------------------------- 1 | package com.materialstudies.owl.ui.onboarding 2 | 3 | import android.graphics.Bitmap 4 | import android.graphics.drawable.Drawable 5 | import android.widget.ImageView 6 | import androidx.annotation.ColorInt 7 | import androidx.annotation.Px 8 | import com.bumptech.glide.request.target.ImageViewTarget 9 | 10 | /** 11 | * A Glide [com.bumptech.glide.request.target.Target] which wraps a loaded [Bitmap] in a 12 | * [TopicThumbnailDrawable]. 13 | */ 14 | class TopicThumbnailTarget( 15 | imageView: ImageView, 16 | @ColorInt private val selectedTint: Int, 17 | @Px private val selectedTopLeftCornerRadius: Int, 18 | private val selectedDrawable: Drawable 19 | ) : ImageViewTarget(imageView) { 20 | 21 | override fun setResource(resource: Bitmap?) { 22 | resource?.let { 23 | val d = (currentDrawable as? TopicThumbnailDrawable) ?: TopicThumbnailDrawable( 24 | selectedTint, 25 | selectedTopLeftCornerRadius, 26 | selectedDrawable 27 | ) 28 | d.bitmap = it 29 | setDrawable(d) 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/anim/shrink_fade_out_center.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 18 | 27 | 32 | 33 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/anim/slide_in_up.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 21 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/anim/slide_out_down.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 21 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/color/bottom_nav_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/color/divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/color/primary_sheet.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/color/topic_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/asl_featured.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 21 | 22 | 25 | 26 | 30 | 31 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/asl_my_courses.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 21 | 22 | 25 | 26 | 30 | 31 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/asl_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 21 | 22 | 25 | 26 | 30 | 31 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/avatar_outline.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 18 | 19 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/course_image_placeholder.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/ic_account.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/ic_add_alt.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/ic_arrow_down.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/ic_avatar_placeholder.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 21 | 27 | 31 | 32 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/ic_back.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/ic_checkmark.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/ic_compass.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/ic_pause.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/ic_play.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/ic_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/inset_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/learn_image_scrim.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 18 | 23 | 24 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/lesson_video_scrim.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 18 | 23 | 24 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/sheet_expand.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/small_component_foreground.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/stroked_course_image_placeholder.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 18 | 19 | 20 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/drawable/topic_foreground.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/font/rubik.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 21 | 22 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/font/rubik_bold.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 21 | 22 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/font/rubik_medium.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 21 | 22 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/menu/account.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 18 | 19 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/menu/learn.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 18 | 19 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 21 | 22 | 26 | 27 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Owl/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Owl/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Owl/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Owl/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Owl/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Owl/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Owl/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Owl/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Owl/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Owl/app/src/main/res/values-h600dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 3 18 | 240dp 19 | 20 | 21 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/values-night/aliases.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | @drawable/ic_lockup_white 18 | 19 | 20 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/values-v29/color.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | @android:color/transparent 18 | 19 | 20 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/values-w600dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 3 18 | 19 | 20 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/values/aliases.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | @drawable/ic_lockup_blue 19 | 20 | 21 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 4dp 18 | 8dp 19 | 12dp 20 | 16dp 21 | 24dp 22 | 32dp 23 | 24 | 1dp 25 | 128dp 26 | 1dp 27 | 28 | 2 29 | 2 30 | 160dp 31 | 32 | 33 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /Owl/app/src/main/res/values/preloaded_fonts.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | @font/rubik 18 | @font/rubik_bold 19 | @font/rubik_medium 20 | 21 | 22 | -------------------------------------------------------------------------------- /Owl/build.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019 Google Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software distributed under the License 9 | * 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | buildscript { 16 | ext.kotlin_version = '1.4.10' 17 | ext.nav_version = '2.3.1' 18 | repositories { 19 | google() 20 | jcenter() 21 | } 22 | dependencies { 23 | classpath 'com.android.tools.build:gradle:4.1.0' 24 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 25 | classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" 26 | } 27 | } 28 | 29 | allprojects { 30 | repositories { 31 | google() 32 | jcenter() 33 | } 34 | } 35 | 36 | task clean(type: Delete) { 37 | delete rootProject.buildDir 38 | } 39 | -------------------------------------------------------------------------------- /Owl/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 | # AndroidX package structure to make it clearer which packages are bundled with the 15 | # Android operating system, and which are packaged with your app's APK 16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 | android.useAndroidX=true 18 | # Kotlin code style for this project: "official" or "obsolete": 19 | kotlin.code.style=official 20 | -------------------------------------------------------------------------------- /Owl/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Owl/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Owl/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Nov 02 08:45:57 GMT 2020 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.5-bin.zip 7 | -------------------------------------------------------------------------------- /Owl/screenshots/collage_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Owl/screenshots/collage_header.png -------------------------------------------------------------------------------- /Owl/screenshots/color_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Owl/screenshots/color_header.png -------------------------------------------------------------------------------- /Owl/screenshots/owl_demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Owl/screenshots/owl_demo.gif -------------------------------------------------------------------------------- /Owl/screenshots/owl_demo_dark.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Owl/screenshots/owl_demo_dark.gif -------------------------------------------------------------------------------- /Owl/screenshots/shape_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Owl/screenshots/shape_header.png -------------------------------------------------------------------------------- /Owl/screenshots/type_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Owl/screenshots/type_header.png -------------------------------------------------------------------------------- /Owl/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | rootProject.name='Owl' 3 | -------------------------------------------------------------------------------- /Reply/.google/packaging.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2020 The Android Open Source Project 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # 15 | # This file is used by Google as part of our samples packaging process. 16 | # End users may safely ignore this file. It has no relevance to other systems. 17 | --- 18 | status: PUBLISHED 19 | technologies: [Android] 20 | categories: [Material Components] 21 | languages: [Kotlin] 22 | solutions: [Mobile] 23 | github: material-components/material-components-android-examples 24 | level: ADVANCED 25 | license: apache2 26 | -------------------------------------------------------------------------------- /Reply/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /Reply/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 | -------------------------------------------------------------------------------- /Reply/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Reply/app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /Reply/app/src/main/java/com/materialstudies/reply/data/EmailAttachment.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 Google LLC 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 | * https://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 | package com.materialstudies.reply.data 18 | 19 | import androidx.annotation.DrawableRes 20 | 21 | data class EmailAttachment( 22 | @DrawableRes val resId: Int, 23 | val contentDesc: String 24 | ) -------------------------------------------------------------------------------- /Reply/app/src/main/java/com/materialstudies/reply/data/EmailFolder.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 Google LLC 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 | * https://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 | package com.materialstudies.reply.data 18 | 19 | import androidx.recyclerview.widget.DiffUtil 20 | 21 | /** 22 | * Alias to represent a folder (a String title) into which emails can be placed. 23 | */ 24 | typealias EmailFolder = String 25 | 26 | object EmailFolderDiff : DiffUtil.ItemCallback() { 27 | override fun areItemsTheSame(oldItem: EmailFolder, newItem: EmailFolder) = oldItem == newItem 28 | override fun areContentsTheSame(oldItem: EmailFolder, newItem: EmailFolder) = oldItem == newItem 29 | } 30 | -------------------------------------------------------------------------------- /Reply/app/src/main/java/com/materialstudies/reply/data/SearchSuggestion.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 Google LLC 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 | * https://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 | package com.materialstudies.reply.data 18 | 19 | import androidx.annotation.DrawableRes 20 | 21 | /** 22 | * An object which represents a search suggestion. 23 | */ 24 | data class SearchSuggestion( 25 | @DrawableRes val iconResId: Int, 26 | val title: String, 27 | val subtitle: String 28 | ) 29 | -------------------------------------------------------------------------------- /Reply/app/src/main/java/com/materialstudies/reply/ui/home/Mailbox.kt: -------------------------------------------------------------------------------- 1 | package com.materialstudies.reply.ui.home 2 | 3 | /** 4 | * An enumeration of mailboxes into which emails can be placed. 5 | */ 6 | enum class Mailbox { 7 | INBOX, STARRED, SENT, TRASH, SPAM, DRAFTS 8 | } -------------------------------------------------------------------------------- /Reply/app/src/main/res/color/color_navigation_drawer_menu_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/color/color_on_primary_surface_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/color/color_on_primary_surface_emphasis_disabled.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/color/color_on_primary_surface_emphasis_high.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/color/color_on_primary_surface_emphasis_medium.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/color/color_on_surface_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/color/color_on_surface_emphasis_disabled.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/color/color_on_surface_emphasis_high.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/color/color_on_surface_emphasis_medium.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/asl_edit_reply.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 21 | 22 | 26 | 27 | 31 | 32 | 36 | 37 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/avatar_0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/drawable/avatar_0.jpg -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/avatar_1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/drawable/avatar_1.jpeg -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/avatar_10.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/drawable/avatar_10.jpeg -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/avatar_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/drawable/avatar_2.jpg -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/avatar_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/drawable/avatar_3.jpg -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/avatar_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/drawable/avatar_4.jpg -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/avatar_5.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/drawable/avatar_5.jpeg -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/avatar_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/drawable/avatar_6.jpg -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/avatar_7.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/drawable/avatar_7.jpeg -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/avatar_8.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/drawable/avatar_8.jpeg -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/avatar_9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/drawable/avatar_9.jpg -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/avatar_express.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/drawable/avatar_express.png -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/avatar_none.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/bottom_app_bar_title_foreground.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 18 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_archive.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_arrow_back.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_arrow_down.xml: -------------------------------------------------------------------------------- 1 | 14 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_arrow_drop_up.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 17 | 19 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_close.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_close_small.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_delete.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_done.xml: -------------------------------------------------------------------------------- 1 | 14 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_edit.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_forward.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_home.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_mic.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_reply.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_reply_all.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_schedule.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_search.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_twotone_add_circle_outline.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_twotone_delete.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 25 | 28 | 29 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_twotone_drafts.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 25 | 28 | 29 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_twotone_error.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 25 | 28 | 29 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_twotone_folder.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 24 | 27 | 28 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_twotone_forward.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 25 | 28 | 29 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_twotone_send.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 25 | 28 | 29 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_twotone_star.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 25 | 28 | 29 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/ic_twotone_star_on_background.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 25 | 28 | 29 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/nav_divider_top.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 19 | 20 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/paris_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/drawable/paris_1.jpg -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/paris_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/drawable/paris_2.jpg -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/paris_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/drawable/paris_3.jpg -------------------------------------------------------------------------------- /Reply/app/src/main/res/drawable/paris_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/drawable/paris_4.jpg -------------------------------------------------------------------------------- /Reply/app/src/main/res/font/work_sans.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 20 | 21 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/font/work_sans_bold.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 20 | 21 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/font/work_sans_extrabold.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 20 | 21 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/font/work_sans_medium.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 20 | 21 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/font/work_sans_semibold.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 20 | 21 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/layout/compose_recipient_chip.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 17 | 18 | 19 | 22 | 23 | 24 | 31 | 32 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/layout/email_attachment_grid_item_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | 21 | 22 | 23 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/layout/email_attachment_preview_item_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | 21 | 22 | 23 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/layout/menu_bottom_sheet_dialog_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 22 | 23 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/layout/search_suggestion_title.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | 21 | 22 | 23 | 32 | 33 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/layout/spinner_item_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 25 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/menu-v29/dark_theme_bottom_sheet_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 17 | 18 | 22 | 23 | 27 | 28 | 32 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/menu/bottom_app_bar_home_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 17 | 18 | 23 | 24 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/menu/bottom_app_bar_settings_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 17 | 18 | 23 | 24 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/menu/dark_theme_bottom_sheet_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 17 | 18 | 22 | 23 | 27 | 28 | 32 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Reply/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Reply/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Reply/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Reply/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Reply/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Reply/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Reply/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Reply/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Reply/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Reply/app/src/main/res/values-v29/color.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 15 | @android:color/transparent 16 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/values/elevation.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 0dp 18 | 1dp 19 | 2dp 20 | 6dp 21 | 8dp 22 | 16dp 23 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/values/layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 2dp 22 | 4dp 23 | 24 | 25 | 8dp 26 | 16dp 27 | 24dp 28 | 32dp 29 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/values/motion.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | 19 | 300 20 | 225 21 | 175 22 | 23 | -------------------------------------------------------------------------------- /Reply/app/src/main/res/values/preloaded_fonts.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | @font/work_sans 18 | @font/work_sans_bold 19 | @font/work_sans_extrabold 20 | @font/work_sans_medium 21 | @font/work_sans_semibold 22 | 23 | 24 | -------------------------------------------------------------------------------- /Reply/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 | android.enableJetifier=true 10 | android.useAndroidX=true 11 | org.gradle.jvmargs=-Xmx1536m 12 | # When configured, Gradle will run in incubating parallel mode. 13 | # This option should only be used with decoupled projects. More details, visit 14 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 15 | # org.gradle.parallel=true 16 | 17 | -------------------------------------------------------------------------------- /Reply/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Reply/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Aug 11 20:17:06 EDT 2020 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.1.1-all.zip 7 | -------------------------------------------------------------------------------- /Reply/screenshots/1_home_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/screenshots/1_home_screen.png -------------------------------------------------------------------------------- /Reply/screenshots/2_navigation_drawer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/screenshots/2_navigation_drawer.png -------------------------------------------------------------------------------- /Reply/screenshots/3_account_sandwich.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/screenshots/3_account_sandwich.png -------------------------------------------------------------------------------- /Reply/screenshots/4_star_email_action.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/screenshots/4_star_email_action.png -------------------------------------------------------------------------------- /Reply/screenshots/5_email_details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/screenshots/5_email_details.png -------------------------------------------------------------------------------- /Reply/screenshots/6_email_compose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/screenshots/6_email_compose.png -------------------------------------------------------------------------------- /Reply/screenshots/collage_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/screenshots/collage_header.png -------------------------------------------------------------------------------- /Reply/screenshots/color_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/screenshots/color_header.png -------------------------------------------------------------------------------- /Reply/screenshots/shape_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/screenshots/shape_header.png -------------------------------------------------------------------------------- /Reply/screenshots/typography_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/Reply/screenshots/typography_header.png -------------------------------------------------------------------------------- /Reply/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /screenshots/mdc_samples.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbanes/material-components-android-examples/e4fa57d3b58f88da6fd60356d62f80468b25fea6/screenshots/mdc_samples.gif --------------------------------------------------------------------------------