diff --git a/lib/src/model/course/course_semester.dart b/lib/src/model/course/course_semester.dart index df29eafc..2b682d9e 100644 --- a/lib/src/model/course/course_semester.dart +++ b/lib/src/model/course/course_semester.dart @@ -1,5 +1,4 @@ -// TODO: remove sdk version selector after migrating to null-safety. -// @dart=2.10 +import 'package:equatable/equatable.dart'; import 'package:flutter_app/src/model/json_init.dart'; import 'package:json_annotation/json_annotation.dart'; import 'package:sprintf/sprintf.dart'; @@ -7,11 +6,11 @@ import 'package:sprintf/sprintf.dart'; part 'course_semester.g.dart'; @JsonSerializable() -class SemesterJson { +class SemesterJson with EquatableMixin { String year; String semester; - SemesterJson({this.year, this.semester}) { + SemesterJson({required this.year, required this.semester}) { year = JsonInit.stringInit(year); semester = JsonInit.stringInit(semester); } @@ -30,17 +29,8 @@ class SemesterJson { } @override - bool operator ==(dynamic other) { - if (other is! SemesterJson) { - return false; - } - - final isSemesterSame = int.tryParse(other.semester) == int.tryParse(semester); - final isYearSame = int.tryParse(other.year) == int.tryParse(year); - - return isSemesterSame && isYearSame; - } - - @override - int get hashCode => Object.hashAll([semester.hashCode, year.hashCode]); + List get props => [ + year, + semester + ]; } diff --git a/lib/src/model/course/course_semester.g.dart b/lib/src/model/course/course_semester.g.dart index 0ce4adde..39b0ed83 100644 --- a/lib/src/model/course/course_semester.g.dart +++ b/lib/src/model/course/course_semester.g.dart @@ -1,5 +1,3 @@ -// TODO: remove sdk version selector after migrating to null-safety. -// @dart=2.10 // GENERATED CODE - DO NOT MODIFY BY HAND part of 'course_semester.dart'; diff --git a/pubspec.lock b/pubspec.lock index 934aa762..b3361db7 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -426,7 +426,7 @@ packages: source: hosted version: "2.1.17" equatable: - dependency: transitive + dependency: "direct main" description: name: equatable sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2 diff --git a/pubspec.yaml b/pubspec.yaml index 801df6c1..98b7efc1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -91,6 +91,7 @@ dependencies: uuid: ^4.1.0 intl_utils: ^2.8.5 flutter_native_splash: ^2.2.19 # restricted by path 1.8.2 + equatable: ^2.0.5 dependency_overrides: