Revert "Implement operator = and hashcode for CupertinoThemeData (#89604)" (#89670)

This reverts commit bf8e1270a7.
This commit is contained in:
Zachary Anderson 2021-09-08 10:54:31 -07:00 committed by GitHub
parent bf8e1270a7
commit b0816e6364
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 1 additions and 140 deletions

View file

@ -247,44 +247,6 @@ class CupertinoTextThemeData with Diagnosticable {
);
}
@override
bool operator ==(Object other) {
if (other.runtimeType != runtimeType) {
return false;
}
// Warning: make sure these properties are in the exact same order as in
// hashValues() and in the raw constructor and in the order of fields in
// the class and in the lerp() method.
return other is CupertinoTextThemeData &&
other.textStyle == textStyle &&
other.actionTextStyle == actionTextStyle &&
other.tabLabelTextStyle == tabLabelTextStyle &&
other.navTitleTextStyle == navTitleTextStyle &&
other.navLargeTitleTextStyle == navLargeTitleTextStyle &&
other.navActionTextStyle == navActionTextStyle &&
other.pickerTextStyle == pickerTextStyle &&
other.dateTimePickerTextStyle == dateTimePickerTextStyle;
}
@override
int get hashCode {
// Warning: For the sanity of the reader, please make sure these properties
// are in the exact same order as in operator == and in the raw constructor
// and in the order of fields in the class and in the lerp() method.
final List<Object?> values = <Object?>[
textStyle,
actionTextStyle,
tabLabelTextStyle,
navTitleTextStyle,
navLargeTitleTextStyle,
navActionTextStyle,
pickerTextStyle,
dateTimePickerTextStyle,
];
return hashList(values);
}
@override
void debugFillProperties(DiagnosticPropertiesBuilder properties) {
super.debugFillProperties(properties);

View file

@ -290,38 +290,6 @@ class CupertinoThemeData extends NoDefaultCupertinoThemeData with Diagnosticable
);
}
@override
bool operator ==(Object other) {
if (other.runtimeType != runtimeType)
return false;
// Warning: make sure these properties are in the exact same order as in
// hashValues() and in the raw constructor and in the order of fields in
// the class and in the lerp() method.
return other is CupertinoThemeData &&
other.brightness == brightness &&
other.primaryColor == primaryColor &&
other.primaryContrastingColor == primaryContrastingColor &&
other.textTheme == textTheme &&
other.barBackgroundColor == barBackgroundColor &&
other.scaffoldBackgroundColor == scaffoldBackgroundColor;
}
@override
int get hashCode {
// Warning: For the sanity of the reader, please make sure these properties
// are in the exact same order as in operator == and in the raw constructor
// and in the order of fields in the class and in the lerp() method.
final List<Object?> values = <Object?>[
brightness,
primaryColor,
primaryContrastingColor,
textTheme,
barBackgroundColor,
scaffoldBackgroundColor,
];
return hashList(values);
}
@override
void debugFillProperties(DiagnosticPropertiesBuilder properties) {
super.debugFillProperties(properties);
@ -347,7 +315,6 @@ class CupertinoThemeData extends NoDefaultCupertinoThemeData with Diagnosticable
///
/// * [CupertinoThemeData], which uses reasonable default values for
/// unspecified theme properties.
@immutable
class NoDefaultCupertinoThemeData {
/// Creates a [NoDefaultCupertinoThemeData] styling specification.
///
@ -475,38 +442,6 @@ class NoDefaultCupertinoThemeData {
scaffoldBackgroundColor: scaffoldBackgroundColor ?? this.scaffoldBackgroundColor,
);
}
@override
bool operator ==(Object other) {
if (other.runtimeType != runtimeType)
return false;
// Warning: make sure these properties are in the exact same order as in
// hashValues() and in the raw constructor and in the order of fields in
// the class and in the lerp() method.
return other is NoDefaultCupertinoThemeData &&
other.brightness == brightness &&
other.primaryColor == primaryColor &&
other.primaryContrastingColor == primaryContrastingColor &&
other.textTheme == textTheme &&
other.barBackgroundColor == barBackgroundColor &&
other.scaffoldBackgroundColor == scaffoldBackgroundColor;
}
@override
int get hashCode {
// Warning: For the sanity of the reader, please make sure these properties
// are in the exact same order as in operator == and in the raw constructor
// and in the order of fields in the class and in the lerp() method.
final List<Object?> values = <Object?>[
brightness,
primaryColor,
primaryContrastingColor,
textTheme,
barBackgroundColor,
scaffoldBackgroundColor,
];
return hashList(values);
}
}
@immutable

View file

@ -206,41 +206,6 @@ void main() {
);
});
test('Theme operator == returns correct value for simple cases', () {
expect(const CupertinoThemeData(), equals(const CupertinoThemeData()));
expect(const CupertinoThemeData(brightness: Brightness.light),
isNot(equals(const CupertinoThemeData(brightness: Brightness.dark))));
expect(
const CupertinoThemeData(
textTheme: CupertinoTextThemeData(
primaryColor: CupertinoColors.activeGreen)),
isNot(equals(const CupertinoThemeData(
textTheme: CupertinoTextThemeData(
primaryColor: CupertinoColors.activeOrange)))));
});
test('hashCode behaves correctly for simple cases', () {
expect(const CupertinoThemeData().hashCode,
equals(const CupertinoThemeData().hashCode));
expect(
const CupertinoThemeData(brightness: Brightness.light).hashCode,
isNot(equals(const CupertinoThemeData(brightness: Brightness.dark))
.hashCode));
expect(
const CupertinoThemeData(
textTheme: CupertinoTextThemeData(
primaryColor: CupertinoColors.activeGreen))
.hashCode,
isNot(equals(const CupertinoThemeData(
textTheme: CupertinoTextThemeData(
primaryColor: CupertinoColors.activeOrange))
.hashCode)));
});
late Brightness currentBrightness;
void colorMatches(Color? componentColor, CupertinoDynamicColor expectedDynamicColor) {
switch (currentBrightness) {

View file

@ -591,8 +591,7 @@ void main() {
),
));
// Widget does not rebuild as theme color remains overriden.
expect(buildCount, 1);
expect(buildCount, 2);
expect(theme.primaryColor, CupertinoColors.activeOrange);
},
);