├── .idea ├── .name ├── codeStyles │ ├── codeStyleConfig.xml │ └── Project.xml ├── vcs.xml ├── runConfigurations.xml ├── misc.xml ├── checkstyle-idea.xml ├── copyright │ └── apache_2_0.xml ├── gradle.xml └── jarRepositories.xml ├── app ├── .gitignore ├── src │ └── main │ │ ├── ic_launcher-playstore.png │ │ ├── res │ │ ├── drawable-nodpi │ │ │ ├── fox.jpg │ │ │ ├── hay.jpg │ │ │ ├── city.jpg │ │ │ ├── mountain.jpg │ │ │ ├── timber.jpg │ │ │ └── turtle.jpg │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ ├── ic_launcher_background.png │ │ │ └── ic_launcher_foreground.png │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ ├── ic_launcher_background.png │ │ │ └── ic_launcher_foreground.png │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ ├── ic_launcher_background.png │ │ │ └── ic_launcher_foreground.png │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ ├── ic_launcher_background.png │ │ │ └── ic_launcher_foreground.png │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ ├── ic_launcher_background.png │ │ │ └── ic_launcher_foreground.png │ │ ├── values │ │ │ ├── preloaded_fonts.xml │ │ │ ├── dimens.xml │ │ │ ├── colors.xml │ │ │ ├── themes.xml │ │ │ ├── font_certs.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-w600dp │ │ │ └── dimens.xml │ │ ├── drawable │ │ │ ├── bg_edit_text.xml │ │ │ ├── ic_default_grid.xml │ │ │ ├── ic_favourite_state.xml │ │ │ ├── ic_home_24.xml │ │ │ ├── ic_navigation_24.xml │ │ │ ├── ic_typography_24.xml │ │ │ ├── ic_bookmark_24.xml │ │ │ ├── ic_view_24.xml │ │ │ ├── ic_staggered_grid_24.xml │ │ │ ├── ic_grid_24.xml │ │ │ ├── ic_input_24.xml │ │ │ ├── ic_error_24.xml │ │ │ ├── ic_favourite_filled_24.xml │ │ │ ├── ic_notifications_24.xml │ │ │ ├── ic_dialog_24.xml │ │ │ ├── ic_explore_articles_24.xml │ │ │ ├── ic_search_24.xml │ │ │ ├── ic_lock_24.xml │ │ │ ├── ic_favourite_outline_24.xml │ │ │ ├── ic_animation_24.xml │ │ │ ├── ic_color_palette_24.xml │ │ │ ├── ic_motion_24.xml │ │ │ ├── ic_settings_24.xml │ │ │ └── ic_launcher_background.xml │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── color │ │ │ ├── bottom_nav_state.xml │ │ │ └── bg_toggle_state.xml │ │ ├── font │ │ │ └── dancing_script.xml │ │ ├── layout │ │ │ ├── item_input_dropdown.xml │ │ │ ├── fragment_lottie.xml │ │ │ ├── activity_main.xml │ │ │ ├── fragment_typography_demo.xml │ │ │ ├── fragment_bottom_navigation.xml │ │ │ ├── fragment_home.xml │ │ │ ├── fragment_buttons.xml │ │ │ ├── fragment_motion_layout.xml │ │ │ ├── fragment_object_animator.xml │ │ │ ├── fragment_value_animations.xml │ │ │ ├── item_grid.xml │ │ │ ├── item_grid_linear.xml │ │ │ ├── fragment_typography.xml │ │ │ ├── item_grid_staggered.xml │ │ │ ├── item_home_category.xml │ │ │ ├── fragment_animator_set.xml │ │ │ ├── view_material_dialog.xml │ │ │ ├── fragment_grids.xml │ │ │ ├── fragment_material_dialogs.xml │ │ │ ├── fragment_animations.xml │ │ │ ├── fragment_floating_action_button.xml │ │ │ ├── fragment_layout_transition.xml │ │ │ ├── item_typography_demo.xml │ │ │ └── fragment_typography_reference.xml │ │ ├── menu │ │ │ └── bottom_navigation_menu.xml │ │ ├── anim │ │ │ ├── slide_in_left.xml │ │ │ ├── slide_out_right.xml │ │ │ ├── slide_in_right.xml │ │ │ └── slide_out_left.xml │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ └── xml │ │ │ └── motion_scene.xml │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── odaridavid │ │ │ └── materialx │ │ │ ├── animations │ │ │ ├── LottieFragment.kt │ │ │ ├── AnimationsFragment.kt │ │ │ ├── ObjectAnimatorFragment.kt │ │ │ ├── AnimatorListener.kt │ │ │ ├── ValueAnimatorFragment.kt │ │ │ ├── LayoutTransitionFragment.kt │ │ │ └── AnimatorSetFragment.kt │ │ │ ├── motion │ │ │ └── MotionLayoutFragment.kt │ │ │ ├── typography │ │ │ ├── TypographyReferenceFragment.kt │ │ │ ├── TypographyDemo.kt │ │ │ ├── TypographyDemoFragment.kt │ │ │ ├── TypographyFragment.kt │ │ │ ├── TypographyDataGenerator.kt │ │ │ └── TypographyDemoAdapter.kt │ │ │ ├── colorpalette │ │ │ ├── PaletteUtils.kt │ │ │ └── ColorPaletteFragment.kt │ │ │ ├── commons │ │ │ ├── SdkUtils.kt │ │ │ ├── ContextExtensions.kt │ │ │ ├── FragmentExtensions.kt │ │ │ └── AlertDialogExtensions.kt │ │ │ ├── grids │ │ │ ├── GridItem.kt │ │ │ ├── GridAdapter.kt │ │ │ └── GridsFragment.kt │ │ │ ├── buttons │ │ │ ├── ButtonsFragment.kt │ │ │ ├── MaterialButtonsFragment.kt │ │ │ └── FloatingActionButtonFragment.kt │ │ │ ├── HomeFragment.kt │ │ │ ├── input │ │ │ └── InputFragment.kt │ │ │ ├── customview │ │ │ └── MaterialXImageView.kt │ │ │ ├── HomeCategory.kt │ │ │ ├── bottomnav │ │ │ └── BottomNavFragment.kt │ │ │ ├── HomeCategoryAdapter.kt │ │ │ ├── MainActivity.kt │ │ │ └── dialogs │ │ │ └── MaterialDialogsFragment.kt │ │ └── AndroidManifest.xml ├── proguard-rules.pro └── build.gradle ├── settings.gradle ├── art ├── as.gif ├── cp1.png ├── cp2.png ├── it.gif ├── mb.png ├── oa.gif ├── va.gif ├── bnav.png ├── fabs.gif ├── grida.png ├── gridb.png ├── gridc.png ├── input.png ├── lottie.gif ├── motion.gif ├── dialog1.png ├── dialog2.png ├── dialog3.png ├── dialog4.png ├── dialog5.png ├── typography.png └── typography3.png ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── gradle.properties ├── gradlew.bat ├── README.md └── gradlew /.idea/.name: -------------------------------------------------------------------------------- 1 | Material-X -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | rootProject.name = "Material-X" -------------------------------------------------------------------------------- /art/as.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/as.gif -------------------------------------------------------------------------------- /art/cp1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/cp1.png -------------------------------------------------------------------------------- /art/cp2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/cp2.png -------------------------------------------------------------------------------- /art/it.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/it.gif -------------------------------------------------------------------------------- /art/mb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/mb.png -------------------------------------------------------------------------------- /art/oa.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/oa.gif -------------------------------------------------------------------------------- /art/va.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/va.gif -------------------------------------------------------------------------------- /art/bnav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/bnav.png -------------------------------------------------------------------------------- /art/fabs.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/fabs.gif -------------------------------------------------------------------------------- /art/grida.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/grida.png -------------------------------------------------------------------------------- /art/gridb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/gridb.png -------------------------------------------------------------------------------- /art/gridc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/gridc.png -------------------------------------------------------------------------------- /art/input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/input.png -------------------------------------------------------------------------------- /art/lottie.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/lottie.gif -------------------------------------------------------------------------------- /art/motion.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/motion.gif -------------------------------------------------------------------------------- /art/dialog1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/dialog1.png -------------------------------------------------------------------------------- /art/dialog2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/dialog2.png -------------------------------------------------------------------------------- /art/dialog3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/dialog3.png -------------------------------------------------------------------------------- /art/dialog4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/dialog4.png -------------------------------------------------------------------------------- /art/dialog5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/dialog5.png -------------------------------------------------------------------------------- /art/typography.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/typography.png -------------------------------------------------------------------------------- /art/typography3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/art/typography3.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/fox.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/drawable-nodpi/fox.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/hay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/drawable-nodpi/hay.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/city.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/drawable-nodpi/city.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/mountain.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/drawable-nodpi/mountain.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/timber.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/drawable-nodpi/timber.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/turtle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/drawable-nodpi/turtle.jpg -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/odaridavid/Material-Design-Android/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/preloaded_fonts.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | @font/dancing_script 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values-w600dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 288dp 4 | 240dp 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Jun 17 23:59:52 EAT 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 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_edit_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/color/bottom_nav_state.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/color/bg_toggle_state.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/font/dancing_script.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_default_grid.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_favourite_state.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_home_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_navigation_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_typography_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_bookmark_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_view_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_staggered_grid_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_grid_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_input_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_error_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_input_dropdown.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_favourite_filled_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_notifications_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_dialog_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_explore_articles_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_search_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lock_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | -------------------------------------------------------------------------------- /.idea/checkstyle-idea.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_favourite_outline_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_animation_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /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 -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_lottie.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 18 | 19 | -------------------------------------------------------------------------------- /.idea/copyright/apache_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_color_palette_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/odaridavid/materialx/animations/LottieFragment.kt: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Copyright 2020 David Odari 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 6 | * in compliance with the License. You may obtain a copy of the License at 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * Unless required by applicable law or agreed to in writing, software distributed under the License 9 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 10 | * or implied. See the License for the specific language governing permissions and limitations under 11 | * the License. 12 | * 13 | **/ 14 | package com.github.odaridavid.materialx.animations 15 | 16 | import androidx.fragment.app.Fragment 17 | import com.github.odaridavid.materialx.R 18 | 19 | 20 | internal class LottieFragment : Fragment(R.layout.fragment_lottie) -------------------------------------------------------------------------------- /app/src/main/java/com/github/odaridavid/materialx/motion/MotionLayoutFragment.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright 2020 David Odari 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 6 | * in compliance with the License. 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 distributed under the License 11 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 12 | * or implied. See the License for the specific language governing permissions and limitations under 13 | * the License. 14 | * 15 | */ 16 | package com.github.odaridavid.materialx.motion 17 | 18 | import androidx.fragment.app.Fragment 19 | import com.github.odaridavid.materialx.R 20 | 21 | 22 | internal class MotionLayoutFragment : Fragment(R.layout.fragment_motion_layout) -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_motion_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/odaridavid/materialx/typography/TypographyReferenceFragment.kt: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Copyright 2020 David Odari 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 6 | * in compliance with the License. You may obtain a copy of the License at 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * Unless required by applicable law or agreed to in writing, software distributed under the License 9 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 10 | * or implied. See the License for the specific language governing permissions and limitations under 11 | * the License. 12 | * 13 | **/ 14 | package com.github.odaridavid.materialx.typography 15 | 16 | import androidx.fragment.app.Fragment 17 | import com.github.odaridavid.materialx.R 18 | 19 | 20 | internal class TypographyReferenceFragment : Fragment(R.layout.fragment_typography_reference) -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 32dp 4 | 16dp 5 | 8dp 6 | 7 | 8 | 48dp 9 | 48dp 10 | 0dp 11 | 4dp 12 | 8dp 13 | 144dp 14 | 120dp 15 | 4dp 16 | 4dp 17 | 0dp 18 | 48dp 19 | 48dp 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/odaridavid/materialx/colorpalette/PaletteUtils.kt: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Copyright 2020 David Odari 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 6 | * in compliance with the License. You may obtain a copy of the License at 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * Unless required by applicable law or agreed to in writing, software distributed under the License 9 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 10 | * or implied. See the License for the specific language governing permissions and limitations under 11 | * the License. 12 | * 13 | **/ 14 | package com.github.odaridavid.materialx.colorpalette 15 | 16 | import android.graphics.Bitmap 17 | import androidx.palette.graphics.Palette 18 | 19 | 20 | object PaletteUtils { 21 | 22 | fun createPaletteSync(bitmap: Bitmap): Palette = Palette.from(bitmap).generate() 23 | 24 | } -------------------------------------------------------------------------------- /app/src/main/res/menu/bottom_navigation_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 16 | 17 | 22 | 23 | 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/odaridavid/materialx/typography/TypographyDemo.kt: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Copyright 2020 David Odari 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 6 | * in compliance with the License. You may obtain a copy of the License at 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * Unless required by applicable law or agreed to in writing, software distributed under the License 9 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 10 | * or implied. See the License for the specific language governing permissions and limitations under 11 | * the License. 12 | * 13 | **/ 14 | package com.github.odaridavid.materialx.typography 15 | 16 | import android.graphics.drawable.Drawable 17 | 18 | 19 | internal data class TypographyDemo( 20 | val image: Drawable, 21 | val imageDescription: String, 22 | val headline: String, 23 | val overline: String, 24 | val body: String, 25 | val caption: String 26 | ) 27 | 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_in_left.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_out_right.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_in_right.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_out_left.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | #fafafa 5 | #ffffff 6 | #c7c7c7 7 | #000000 8 | 9 | #424242 10 | #6d6d6d 11 | #1b1b1b 12 | #ffffff 13 | 14 | #ffb74d 15 | #9c27b0 16 | 17 | #880e4f 18 | #560027 19 | #bc477b 20 | 21 | #ffd600 22 | #c7a500 23 | #ffff52 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/odaridavid/materialx/commons/SdkUtils.kt: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Copyright 2020 David Odari 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 6 | * in compliance with the License. You may obtain a copy of the License at 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * Unless required by applicable law or agreed to in writing, software distributed under the License 9 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 10 | * or implied. See the License for the specific language governing permissions and limitations under 11 | * the License. 12 | * 13 | **/ 14 | package com.github.odaridavid.materialx.commons 15 | 16 | import android.os.Build 17 | import android.os.Build.VERSION.SDK_INT 18 | import androidx.annotation.IntRange 19 | 20 | 21 | internal fun versionFrom( 22 | @IntRange( 23 | from = Build.VERSION_CODES.BASE_1_1.toLong(), 24 | to = Build.VERSION_CODES.Q.toLong() 25 | ) version: Int 26 | ): Boolean = SDK_INT >= version 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_typography_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_bottom_navigation.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_home.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 22 | 23 | -------------------------------------------------------------------------------- /.idea/jarRepositories.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | 19 | 20 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_buttons.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | 17 | 25 | -------------------------------------------------------------------------------- /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=-Xmx2048m 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 | # Automatically convert third-party libraries to use AndroidX 19 | android.enableJetifier=true 20 | # Kotlin code style for this project: "official" or "obsolete": 21 | kotlin.code.style=official -------------------------------------------------------------------------------- /app/src/main/java/com/github/odaridavid/materialx/commons/ContextExtensions.kt: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Copyright 2020 David Odari 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 6 | * in compliance with the License. You may obtain a copy of the License at 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * Unless required by applicable law or agreed to in writing, software distributed under the License 9 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 10 | * or implied. See the License for the specific language governing permissions and limitations under 11 | * the License. 12 | * 13 | **/ 14 | package com.github.odaridavid.materialx.commons 15 | 16 | import android.content.Context 17 | import android.graphics.drawable.Drawable 18 | import android.widget.Toast 19 | import androidx.annotation.DrawableRes 20 | import androidx.core.content.res.ResourcesCompat 21 | 22 | 23 | internal fun Context.getImageDrawable(@DrawableRes id: Int): Drawable { 24 | return ResourcesCompat.getDrawable(resources, id, null)!! 25 | } 26 | 27 | internal fun Context.showToast(message:String){ 28 | Toast.makeText(this,message,Toast.LENGTH_SHORT).show() 29 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_settings_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/odaridavid/materialx/animations/AnimationsFragment.kt: -------------------------------------------------------------------------------- 1 | package com.github.odaridavid.materialx.animations 2 | 3 | import android.os.Bundle 4 | import android.view.View 5 | import androidx.fragment.app.Fragment 6 | import com.github.odaridavid.materialx.R 7 | import com.github.odaridavid.materialx.commons.navigateOnClick 8 | 9 | internal class AnimationsFragment : Fragment(R.layout.fragment_animations) { 10 | 11 | override fun onViewCreated(view: View, savedInstanceState: Bundle?) { 12 | super.onViewCreated(view, savedInstanceState) 13 | navigateOnClick( 14 | R.id.object_animator_button, 15 | R.id.action_animationsFragment_to_objectAnimatorFragment 16 | ) 17 | 18 | navigateOnClick( 19 | R.id.value_animator_button, 20 | R.id.action_animationsFragment_to_valueAnimationsFragment 21 | ) 22 | 23 | navigateOnClick( 24 | R.id.animator_set_button, 25 | R.id.action_animationsFragment_to_animatorSetFragment 26 | ) 27 | 28 | navigateOnClick( 29 | R.id.animator_set_button, 30 | R.id.action_animationsFragment_to_layoutTransitionFragment 31 | ) 32 | 33 | navigateOnClick( 34 | R.id.lottie_animation_button, 35 | R.id.action_animationsFragment_to_lottieFragment 36 | ) 37 | 38 | } 39 | 40 | } -------------------------------------------------------------------------------- /app/src/main/java/com/github/odaridavid/materialx/commons/FragmentExtensions.kt: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Copyright 2020 David Odari 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 6 | * in compliance with the License. You may obtain a copy of the License at 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * Unless required by applicable law or agreed to in writing, software distributed under the License 9 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 10 | * or implied. See the License for the specific language governing permissions and limitations under 11 | * the License. 12 | * 13 | **/ 14 | package com.github.odaridavid.materialx.commons 15 | 16 | import androidx.annotation.ColorRes 17 | import androidx.annotation.IdRes 18 | import androidx.core.content.ContextCompat 19 | import androidx.fragment.app.Fragment 20 | import androidx.navigation.fragment.findNavController 21 | import com.google.android.material.button.MaterialButton 22 | 23 | 24 | internal fun Fragment.getColor(@ColorRes id: Int): Int { 25 | return ContextCompat.getColor(requireContext(), id) 26 | } 27 | 28 | internal fun Fragment.navigateOnClick(@IdRes viewId: Int, @IdRes navAction: Int) { 29 | view?.findViewById(viewId)?.setOnClickListener { 30 | findNavController().navigate(navAction) 31 | } 32 | } -------------------------------------------------------------------------------- /app/src/main/java/com/github/odaridavid/materialx/grids/GridItem.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright 2020 David Odari 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 6 | * in compliance with the License. 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 distributed under the License 11 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 12 | * or implied. See the License for the specific language governing permissions and limitations under 13 | * the License. 14 | * 15 | */ 16 | package com.github.odaridavid.materialx.grids 17 | 18 | import androidx.annotation.DrawableRes 19 | import androidx.annotation.StringRes 20 | import com.github.odaridavid.materialx.R 21 | 22 | 23 | internal data class GridItem(@DrawableRes val image: Int, @StringRes val title: Int) 24 | 25 | internal fun getGridItems(): List { 26 | return listOf( 27 | GridItem(R.drawable.city, R.string.dummy_text_3), 28 | GridItem(R.drawable.mountain, R.string.dummy_text_3), 29 | GridItem(R.drawable.fox, R.string.dummy_text_3), 30 | GridItem(R.drawable.turtle, R.string.dummy_text_3), 31 | GridItem(R.drawable.timber, R.string.dummy_text_3), 32 | GridItem(R.drawable.hay, R.string.dummy_text_3) 33 | ) 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/odaridavid/materialx/commons/AlertDialogExtensions.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright 2020 David Odari 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 6 | * in compliance with the License. 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 distributed under the License 11 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 12 | * or implied. See the License for the specific language governing permissions and limitations under 13 | * the License. 14 | * 15 | */ 16 | package com.github.odaridavid.materialx.commons 17 | 18 | import android.content.DialogInterface 19 | import androidx.annotation.ColorRes 20 | import androidx.appcompat.app.AlertDialog 21 | import androidx.core.content.ContextCompat 22 | import com.github.odaridavid.materialx.R 23 | 24 | 25 | internal fun AlertDialog.getColor(@ColorRes id: Int): Int { 26 | return ContextCompat.getColor(context, id) 27 | } 28 | 29 | internal fun AlertDialog.initButtonsStyle() { 30 | getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(getColor(R.color.color_pink_900)) 31 | getButton(DialogInterface.BUTTON_NEGATIVE).setTextColor(getColor(R.color.color_pink_900)) 32 | getButton(DialogInterface.BUTTON_NEUTRAL).setTextColor(getColor(R.color.color_grey_800)) 33 | } -------------------------------------------------------------------------------- /app/src/main/java/com/github/odaridavid/materialx/animations/ObjectAnimatorFragment.kt: -------------------------------------------------------------------------------- 1 | package com.github.odaridavid.materialx.animations 2 | 3 | import android.animation.ObjectAnimator 4 | import android.os.Bundle 5 | import android.view.View 6 | import android.view.animation.AnticipateOvershootInterpolator 7 | import android.widget.Button 8 | import android.widget.TextView 9 | import androidx.fragment.app.Fragment 10 | import com.github.odaridavid.materialx.R 11 | 12 | 13 | //TODO Dynamically choose interpolator 14 | class ObjectAnimatorFragment : Fragment(R.layout.fragment_object_animator) { 15 | 16 | override fun onViewCreated(view: View, savedInstanceState: Bundle?) { 17 | super.onViewCreated(view, savedInstanceState) 18 | val animatedTextView = view.findViewById(R.id.animated_text_view) 19 | val startButton = view.findViewById