Skip to content

Commit

Permalink
Move toggleable to widget layer (#148272)
Browse files Browse the repository at this point in the history
Currently, toggleable exists independently in the material and cupertino
libraries. Cupertino's toggleable is a minimal copy of material's, and
so it makes sense to have only one toggleable in the widgets layer.

This change makes it easier for cupertino's toggleables (switch, radio,
checkbox) to potentially have as many capabilities as material
toggleables (for example, resolving in different widget states), thus
increasing support for the cupertino library.

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
[Data Driven Fixes]:
https://github.com/flutter/flutter/wiki/Data-driven-Fixes

---------

Co-authored-by: Pierre-Louis <[email protected]>
  • Loading branch information
victorsanni and guidezpl authored May 14, 2024
1 parent a24b764 commit 7d92700
Show file tree
Hide file tree
Showing 10 changed files with 89 additions and 282 deletions.
1 change: 0 additions & 1 deletion packages/flutter/lib/material.dart
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,6 @@ export 'src/material/time_picker.dart';
export 'src/material/time_picker_theme.dart';
export 'src/material/toggle_buttons.dart';
export 'src/material/toggle_buttons_theme.dart';
export 'src/material/toggleable.dart';
export 'src/material/tooltip.dart';
export 'src/material/tooltip_theme.dart';
export 'src/material/tooltip_visibility.dart';
Expand Down
1 change: 0 additions & 1 deletion packages/flutter/lib/src/cupertino/checkbox.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import 'package:flutter/widgets.dart';

import 'colors.dart';
import 'constants.dart';
import 'toggleable.dart';

// Examples can assume:
// bool _throwShotAway = false;
Expand Down
1 change: 0 additions & 1 deletion packages/flutter/lib/src/cupertino/radio.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';

import 'colors.dart';
import 'toggleable.dart';

// Examples can assume:
// late BuildContext context;
Expand Down
244 changes: 0 additions & 244 deletions packages/flutter/lib/src/cupertino/toggleable.dart

This file was deleted.

4 changes: 3 additions & 1 deletion packages/flutter/lib/src/material/checkbox.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import 'debug.dart';
import 'material_state.dart';
import 'theme.dart';
import 'theme_data.dart';
import 'toggleable.dart';

// Examples can assume:
// bool _throwShotAway = false;
Expand Down Expand Up @@ -444,6 +443,9 @@ class _CheckboxState extends State<Checkbox> with TickerProviderStateMixin, Togg
@override
bool? get value => widget.value;

@override
Duration? get reactionAnimationDuration => kRadialReactionDuration;

MaterialStateProperty<Color?> get _widgetFillColor {
return MaterialStateProperty.resolveWith((Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) {
Expand Down
4 changes: 3 additions & 1 deletion packages/flutter/lib/src/material/radio.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import 'material_state.dart';
import 'radio_theme.dart';
import 'theme.dart';
import 'theme_data.dart';
import 'toggleable.dart';

// Examples can assume:
// late BuildContext context;
Expand Down Expand Up @@ -412,6 +411,9 @@ class _RadioState<T> extends State<Radio<T>> with TickerProviderStateMixin, Togg
@override
bool? get value => widget._selected;

@override
Duration? get reactionAnimationDuration => kRadialReactionDuration;

MaterialStateProperty<Color?> get _widgetFillColor {
return MaterialStateProperty.resolveWith((Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) {
Expand Down
4 changes: 3 additions & 1 deletion packages/flutter/lib/src/material/switch.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import 'shadows.dart';
import 'switch_theme.dart';
import 'theme.dart';
import 'theme_data.dart';
import 'toggleable.dart';

// Examples can assume:
// bool _giveVerse = true;
Expand Down Expand Up @@ -746,6 +745,9 @@ class _MaterialSwitchState extends State<_MaterialSwitch> with TickerProviderSta
@override
bool? get value => widget.value;

@override
Duration? get reactionAnimationDuration => kRadialReactionDuration;

void updateCurve() {
if (Theme.of(context).useMaterial3) {
position
Expand Down
Loading

0 comments on commit 7d92700

Please sign in to comment.