[various] Replaces manual hashing with Object.hash (#5314)
diff --git a/packages/camera/camera_platform_interface/CHANGELOG.md b/packages/camera/camera_platform_interface/CHANGELOG.md
index 6ed662b..ef251ea 100644
--- a/packages/camera/camera_platform_interface/CHANGELOG.md
+++ b/packages/camera/camera_platform_interface/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 2.1.6
+
+* Adopts `Object.hash`.
+* Removes obsolete dependency on `pedantic`.
+
## 2.1.5
* Fixes asynchronous exceptions handling of the `initializeCamera` method.
diff --git a/packages/camera/camera_platform_interface/lib/src/events/camera_event.dart b/packages/camera/camera_platform_interface/lib/src/events/camera_event.dart
index a91e538..755006c 100644
--- a/packages/camera/camera_platform_interface/lib/src/events/camera_event.dart
+++ b/packages/camera/camera_platform_interface/lib/src/events/camera_event.dart
@@ -117,14 +117,15 @@
focusPointSupported == other.focusPointSupported;
@override
- int get hashCode =>
- super.hashCode ^
- previewWidth.hashCode ^
- previewHeight.hashCode ^
- exposureMode.hashCode ^
- exposurePointSupported.hashCode ^
- focusMode.hashCode ^
- focusPointSupported.hashCode;
+ int get hashCode => Object.hash(
+ super.hashCode,
+ previewWidth,
+ previewHeight,
+ exposureMode,
+ exposurePointSupported,
+ focusMode,
+ focusPointSupported,
+ );
}
/// An event fired when the resolution preset of the camera has changed.
@@ -171,8 +172,7 @@
captureHeight == other.captureHeight;
@override
- int get hashCode =>
- super.hashCode ^ captureWidth.hashCode ^ captureHeight.hashCode;
+ int get hashCode => Object.hash(super.hashCode, captureWidth, captureHeight);
}
/// An event fired when the camera is going to close.
@@ -239,7 +239,7 @@
description == other.description;
@override
- int get hashCode => super.hashCode ^ description.hashCode;
+ int get hashCode => Object.hash(super.hashCode, description);
}
/// An event fired when a video has finished recording.
@@ -284,6 +284,5 @@
maxVideoDuration == other.maxVideoDuration;
@override
- int get hashCode =>
- super.hashCode ^ file.hashCode ^ maxVideoDuration.hashCode;
+ int get hashCode => Object.hash(super.hashCode, file, maxVideoDuration);
}
diff --git a/packages/camera/camera_platform_interface/lib/src/types/camera_description.dart b/packages/camera/camera_platform_interface/lib/src/types/camera_description.dart
index df72636..0167cf9 100644
--- a/packages/camera/camera_platform_interface/lib/src/types/camera_description.dart
+++ b/packages/camera/camera_platform_interface/lib/src/types/camera_description.dart
@@ -50,7 +50,7 @@
lensDirection == other.lensDirection;
@override
- int get hashCode => name.hashCode ^ lensDirection.hashCode;
+ int get hashCode => Object.hash(name, lensDirection);
@override
String toString() {
diff --git a/packages/camera/camera_platform_interface/pubspec.yaml b/packages/camera/camera_platform_interface/pubspec.yaml
index b28008d..ab163b4 100644
--- a/packages/camera/camera_platform_interface/pubspec.yaml
+++ b/packages/camera/camera_platform_interface/pubspec.yaml
@@ -4,11 +4,11 @@
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22
# NOTE: We strongly prefer non-breaking changes, even at the expense of a
# less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes
-version: 2.1.5
+version: 2.1.6
environment:
sdk: '>=2.12.0 <3.0.0'
- flutter: ">=2.0.0"
+ flutter: ">=2.8.0"
dependencies:
cross_file: ^0.3.1
@@ -21,4 +21,3 @@
async: ^2.5.0
flutter_test:
sdk: flutter
- pedantic: ^1.10.0
diff --git a/packages/camera/camera_platform_interface/test/events/camera_event_test.dart b/packages/camera/camera_platform_interface/test/events/camera_event_test.dart
index a46486e..8a428e2 100644
--- a/packages/camera/camera_platform_interface/test/events/camera_event_test.dart
+++ b/packages/camera/camera_platform_interface/test/events/camera_event_test.dart
@@ -137,13 +137,14 @@
test('hashCode should match hashCode of all properties', () {
const CameraInitializedEvent event = CameraInitializedEvent(
1, 1024, 640, ExposureMode.auto, true, FocusMode.auto, true);
- final int expectedHashCode = event.cameraId.hashCode ^
- event.previewWidth.hashCode ^
- event.previewHeight.hashCode ^
- event.exposureMode.hashCode ^
- event.exposurePointSupported.hashCode ^
- event.focusMode.hashCode ^
- event.focusPointSupported.hashCode;
+ final int expectedHashCode = Object.hash(
+ event.cameraId,
+ event.previewWidth,
+ event.previewHeight,
+ event.exposureMode,
+ event.exposurePointSupported,
+ event.focusMode,
+ event.focusPointSupported);
expect(event.hashCode, expectedHashCode);
});
@@ -223,9 +224,8 @@
test('hashCode should match hashCode of all properties', () {
const CameraResolutionChangedEvent event =
CameraResolutionChangedEvent(1, 1024, 640);
- final int expectedHashCode = event.cameraId.hashCode ^
- event.captureWidth.hashCode ^
- event.captureHeight.hashCode;
+ final int expectedHashCode =
+ Object.hash(event.cameraId, event.captureWidth, event.captureHeight);
expect(event.hashCode, expectedHashCode);
});
@@ -328,7 +328,7 @@
test('hashCode should match hashCode of all properties', () {
const CameraErrorEvent event = CameraErrorEvent(1, 'Error');
final int expectedHashCode =
- event.cameraId.hashCode ^ event.description.hashCode;
+ Object.hash(event.cameraId, event.description);
expect(event.hashCode, expectedHashCode);
});
diff --git a/packages/camera/camera_platform_interface/test/types/camera_description_test.dart b/packages/camera/camera_platform_interface/test/types/camera_description_test.dart
index 3d3aaae..a86df03 100644
--- a/packages/camera/camera_platform_interface/test/types/camera_description_test.dart
+++ b/packages/camera/camera_platform_interface/test/types/camera_description_test.dart
@@ -97,15 +97,15 @@
expect(firstDescription == secondDescription, true);
});
- test('hashCode should match hashCode of all properties', () {
+ test('hashCode should match hashCode of all equality-tested properties',
+ () {
const CameraDescription description = CameraDescription(
name: 'Test',
lensDirection: CameraLensDirection.front,
sensorOrientation: 0,
);
- final int expectedHashCode = description.name.hashCode ^
- description.lensDirection.hashCode ^
- description.sensorOrientation.hashCode;
+ final int expectedHashCode =
+ Object.hash(description.name, description.lensDirection);
expect(description.hashCode, expectedHashCode);
});
diff --git a/packages/local_auth/local_auth_android/CHANGELOG.md b/packages/local_auth/local_auth_android/CHANGELOG.md
index 7f198f2..121daf9 100644
--- a/packages/local_auth/local_auth_android/CHANGELOG.md
+++ b/packages/local_auth/local_auth_android/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.0.1
+
+* Adopts `Object.hash`.
+
## 1.0.0
-* Initial release from migration to federated architecture.
+* Initial release from migration to federated architecture.
diff --git a/packages/local_auth/local_auth_android/lib/types/auth_messages_android.dart b/packages/local_auth/local_auth_android/lib/types/auth_messages_android.dart
index ea61a4b..ad90124 100644
--- a/packages/local_auth/local_auth_android/lib/types/auth_messages_android.dart
+++ b/packages/local_auth/local_auth_android/lib/types/auth_messages_android.dart
@@ -110,17 +110,18 @@
signInTitle == other.signInTitle;
@override
- int get hashCode =>
- biometricHint.hashCode ^
- biometricNotRecognized.hashCode ^
- biometricRequiredTitle.hashCode ^
- biometricSuccess.hashCode ^
- cancelButton.hashCode ^
- deviceCredentialsRequiredTitle.hashCode ^
- deviceCredentialsSetupDescription.hashCode ^
- goToSettingsButton.hashCode ^
- goToSettingsDescription.hashCode ^
- signInTitle.hashCode;
+ int get hashCode => Object.hash(
+ super.hashCode,
+ biometricHint,
+ biometricNotRecognized,
+ biometricRequiredTitle,
+ biometricSuccess,
+ cancelButton,
+ deviceCredentialsRequiredTitle,
+ deviceCredentialsSetupDescription,
+ goToSettingsButton,
+ goToSettingsDescription,
+ signInTitle);
}
// Default strings for AndroidAuthMessages. Currently supports English.
diff --git a/packages/local_auth/local_auth_android/pubspec.yaml b/packages/local_auth/local_auth_android/pubspec.yaml
index ec2991d..5734843 100644
--- a/packages/local_auth/local_auth_android/pubspec.yaml
+++ b/packages/local_auth/local_auth_android/pubspec.yaml
@@ -2,7 +2,7 @@
description: Android implementation of the local_auth plugin.
repository: https://github.com/flutter/plugins/tree/master/packages/local_auth/local_auth_android
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+local_auth%22
-version: 1.0.0
+version: 1.0.1
environment:
sdk: ">=2.14.0 <3.0.0"
@@ -26,4 +26,4 @@
dev_dependencies:
flutter_test:
- sdk: flutter
\ No newline at end of file
+ sdk: flutter
diff --git a/packages/local_auth/local_auth_ios/CHANGELOG.md b/packages/local_auth/local_auth_ios/CHANGELOG.md
index ccacae9..466aeb5 100644
--- a/packages/local_auth/local_auth_ios/CHANGELOG.md
+++ b/packages/local_auth/local_auth_ios/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.0.3
+
+* Adopts `Object.hash`.
+
## 1.0.2
* Adds support `localizedFallbackTitle` in authenticateWithBiometrics on iOS.
@@ -8,4 +12,4 @@
## 1.0.0
-* Initial release from migration to federated architecture.
+* Initial release from migration to federated architecture.
diff --git a/packages/local_auth/local_auth_ios/lib/types/auth_messages_ios.dart b/packages/local_auth/local_auth_ios/lib/types/auth_messages_ios.dart
index b3236a7..e5173fc 100644
--- a/packages/local_auth/local_auth_ios/lib/types/auth_messages_ios.dart
+++ b/packages/local_auth/local_auth_ios/lib/types/auth_messages_ios.dart
@@ -65,12 +65,14 @@
localizedFallbackTitle == other.localizedFallbackTitle;
@override
- int get hashCode =>
- lockOut.hashCode ^
- goToSettingsButton.hashCode ^
- goToSettingsDescription.hashCode ^
- cancelButton.hashCode ^
- localizedFallbackTitle.hashCode;
+ int get hashCode => Object.hash(
+ super.hashCode,
+ lockOut,
+ goToSettingsButton,
+ goToSettingsDescription,
+ cancelButton,
+ localizedFallbackTitle,
+ );
}
// Default Strings for IOSAuthMessages plugin. Currently supports English.
diff --git a/packages/local_auth/local_auth_ios/pubspec.yaml b/packages/local_auth/local_auth_ios/pubspec.yaml
index 9e69dc7..06d972a 100644
--- a/packages/local_auth/local_auth_ios/pubspec.yaml
+++ b/packages/local_auth/local_auth_ios/pubspec.yaml
@@ -2,7 +2,7 @@
description: iOS implementation of the local_auth plugin.
repository: https://github.com/flutter/plugins/tree/master/packages/local_auth/local_auth_ios
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+local_auth%22
-version: 1.0.2
+version: 1.0.3
environment:
sdk: ">=2.14.0 <3.0.0"
@@ -24,4 +24,4 @@
dev_dependencies:
flutter_test:
- sdk: flutter
\ No newline at end of file
+ sdk: flutter
diff --git a/packages/local_auth/local_auth_platform_interface/CHANGELOG.md b/packages/local_auth/local_auth_platform_interface/CHANGELOG.md
index d16a91e..0ff4d16 100644
--- a/packages/local_auth/local_auth_platform_interface/CHANGELOG.md
+++ b/packages/local_auth/local_auth_platform_interface/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.0.2
+
+* Adopts `Object.hash`.
+
## 1.0.1
* Export externally used types from local_auth_platform_interface.dart directly.
diff --git a/packages/local_auth/local_auth_platform_interface/lib/types/auth_options.dart b/packages/local_auth/local_auth_platform_interface/lib/types/auth_options.dart
index c4b646c..a5af8e7 100644
--- a/packages/local_auth/local_auth_platform_interface/lib/types/auth_options.dart
+++ b/packages/local_auth/local_auth_platform_interface/lib/types/auth_options.dart
@@ -52,9 +52,10 @@
biometricOnly == other.biometricOnly;
@override
- int get hashCode =>
- useErrorDialogs.hashCode ^
- stickyAuth.hashCode ^
- sensitiveTransaction.hashCode ^
- biometricOnly.hashCode;
+ int get hashCode => Object.hash(
+ useErrorDialogs,
+ stickyAuth,
+ sensitiveTransaction,
+ biometricOnly,
+ );
}
diff --git a/packages/local_auth/local_auth_platform_interface/pubspec.yaml b/packages/local_auth/local_auth_platform_interface/pubspec.yaml
index cd12a8a..b5d476d 100644
--- a/packages/local_auth/local_auth_platform_interface/pubspec.yaml
+++ b/packages/local_auth/local_auth_platform_interface/pubspec.yaml
@@ -4,7 +4,7 @@
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+local_auth%22
# NOTE: We strongly prefer non-breaking changes, even at the expense of a
# less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes
-version: 1.0.1
+version: 1.0.2
environment:
sdk: ">=2.14.0 <3.0.0"
@@ -19,4 +19,4 @@
dev_dependencies:
flutter_test:
sdk: flutter
- mockito: ^5.0.0
\ No newline at end of file
+ mockito: ^5.0.0
diff --git a/packages/video_player/video_player_platform_interface/CHANGELOG.md b/packages/video_player/video_player_platform_interface/CHANGELOG.md
index 6595a5c..9843fd8 100644
--- a/packages/video_player/video_player_platform_interface/CHANGELOG.md
+++ b/packages/video_player/video_player_platform_interface/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 5.1.2
+
+* Adopts `Object.hash`.
+* Removes obsolete dependency on `pedantic`.
+
## 5.1.1
* Adds `rotationCorrection` (for Android playing videos recorded in landscapeRight [#60327](https://github.com/flutter/flutter/issues/60327)).
diff --git a/packages/video_player/video_player_platform_interface/lib/video_player_platform_interface.dart b/packages/video_player/video_player_platform_interface/lib/video_player_platform_interface.dart
index 706ec61..78173f1 100644
--- a/packages/video_player/video_player_platform_interface/lib/video_player_platform_interface.dart
+++ b/packages/video_player/video_player_platform_interface/lib/video_player_platform_interface.dart
@@ -249,12 +249,13 @@
}
@override
- int get hashCode =>
- eventType.hashCode ^
- duration.hashCode ^
- size.hashCode ^
- rotationCorrection.hashCode ^
- buffered.hashCode;
+ int get hashCode => Object.hash(
+ eventType,
+ duration,
+ size,
+ rotationCorrection,
+ buffered,
+ );
}
/// Type of the event.
@@ -343,7 +344,7 @@
end == other.end;
@override
- int get hashCode => start.hashCode ^ end.hashCode;
+ int get hashCode => Object.hash(start, end);
}
/// [VideoPlayerOptions] can be optionally used to set additional player settings
diff --git a/packages/video_player/video_player_platform_interface/pubspec.yaml b/packages/video_player/video_player_platform_interface/pubspec.yaml
index ea3b17b..7a18568 100644
--- a/packages/video_player/video_player_platform_interface/pubspec.yaml
+++ b/packages/video_player/video_player_platform_interface/pubspec.yaml
@@ -4,11 +4,11 @@
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22
# NOTE: We strongly prefer non-breaking changes, even at the expense of a
# less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes
-version: 5.1.1
+version: 5.1.2
environment:
sdk: ">=2.12.0 <3.0.0"
- flutter: ">=2.0.0"
+ flutter: ">=2.8.0"
dependencies:
flutter:
@@ -18,5 +18,4 @@
dev_dependencies:
flutter_test:
sdk: flutter
- pedantic: ^1.10.0
pigeon: 0.1.21
diff --git a/script/tool/test/util.dart b/script/tool/test/util.dart
index 6f7d86e..fab4f39 100644
--- a/script/tool/test/util.dart
+++ b/script/tool/test/util.dart
@@ -434,8 +434,7 @@
}
@override
- int get hashCode =>
- (executable.hashCode) ^ (args.hashCode) ^ (workingDir?.hashCode ?? 0);
+ int get hashCode => Object.hash(executable, args, workingDir);
@override
String toString() {