This is a first step in reversing the dependency flow around the `theme`
package in MDC. In a future commit, I'll make theme contain all the various
MaterialComponents theme definitions, and it will thus depend on the various
packages containing our components (widget, button, toggle, etc.).
The theme package will be empty as of this commit, but since I plan to use it
in the next one I've left the build infrastructure in place.
PiperOrigin-RevId: 180737806
This also moves expandable and transformation into their own packages, as was originally intended (but they had resources, which was problematic at that time). CoordinatorLayout has been moved out of the typical source root to ease its later deletion (when it has made it into core-ui).
PiperOrigin-RevId: 180728823
We cannot use 'switch' as a package name in java but would like to keep naming
conventions inline with sysUi - SwitchCompat. This feels clumsy to me as we now
have items such as <android.support.design.materialswitch.MaterialSwitch but I
am not sure how else to get around this.
PiperOrigin-RevId: 180649420
This gives internal its own res directory, and pushes the build files down into
the source directory (as it is with all our other non-widget packages). Ideally
new things don't really get added to this package (instead they can be added to
feature/component-specific packages as package private). A few new packages had
to be created in order to break circular dependencies between widget and
internal.
This commit also fixes a number of problems with the Gradle build, as they were
mostly related to dependency issues or things not being included in
settings.gradle.
The next step here is to do the same for the widget package, and turn the lib
build files into something that just exports the other library packages.
PiperOrigin-RevId: 179866428
This is still a WIP but breaking this down into smaller pieces for review purposes. There are a number of items still outstanding due to technical complexity that need to be addressed. I have included TODOs for each of these. These will need to be completed before moving this component into the main catalog.
The main items:
Finalise the base values from the red lines
Change the GradientDrawable for thumb and track to something that can have elevation
Fix the padding issue with the track - remove the workaround onDraw due to concerns over the solution being 'hacky'
TrackTintMode & ThumbTintMode needs adding
Ripple radius is smaller due to drawable which I will address once we have resolved the drawable solution
Video of toggle in current state:
https://drive.google.com/open?id=1pWFGuud3k3Wpay0CUKXZu8gbbxuCtG8d
PiperOrigin-RevId: 179551097
New singleSelection attribute to control whether the ChipGroup has a multiple-exclusion scope for its chips.
When set to true, the ChipGroup acts as a RadioGroup.
ChipGroup can be used purely for layout purposes when singleSelection is set to false.
PiperOrigin-RevId: 178466966
Bazel is happier if Java/Java test roots are named 'java' and 'javatests', and
this will mean that once we create a BUILD file for
android/support/design/{widget,internal}/ we'll no longer need a custom package
specified in our build (which tends to cause build problems that manifest quite
weirdly). This commit doesn't attempt to refactor the build at all yet, and is
just a pure move.
PiperOrigin-RevId: 178060739