diff --git a/lib/ui/routes/main_route.dart b/lib/ui/routes/main_route.dart index f0ad178..a9c9a8a 100644 --- a/lib/ui/routes/main_route.dart +++ b/lib/ui/routes/main_route.dart @@ -200,27 +200,16 @@ class RouteWidgetState extends State with TickerProviderStateMixin } List getTabs() { - final List items = switch (getCurrentYear().termCount) { - 1 => [ - translations.yearOne, - ], - 2 => [ - "${translations.semesterOne} 1", - "${translations.semesterOne} 2", - ], - 3 => [ - "${translations.trimesterOne} 1", - "${translations.trimesterOne} 2", - "${translations.trimesterOne} 3", - ], - 4 => [ - "${translations.quarterOne} 1", - "${translations.quarterOne} 2", - "${translations.quarterOne} 3", - "${translations.quarterOne} 4", - ], + final int termCount = getCurrentYear().termCount; + final List items = List.generate(termCount, (i) { + return switch (termCount) { + 1 => translations.yearOne, + 2 => translations.semester_num.replaceFirst("%s", "${i + 1}"), + 3 => translations.trimester_num.replaceFirst("%s", "${i + 1}"), + 4 => translations.quartile_num.replaceFirst("%s", "${i + 1}"), _ => throw const FormatException("Invalid"), }; + }); if (getCurrentYear().validatedYear == 1) { items.add(translations.exams); diff --git a/lib/ui/utilities/hints.dart b/lib/ui/utilities/hints.dart index 0c57866..01247b1 100644 --- a/lib/ui/utilities/hints.dart +++ b/lib/ui/utilities/hints.dart @@ -1,42 +1,51 @@ -// Project imports: -import "package:graded/calculations/calculation_object.dart"; -import "package:graded/calculations/manager.dart"; -import "package:graded/calculations/subject.dart"; -import "package:graded/localization/translations.dart"; - -String getHint(String prefix, List data) { - String hint = ""; - int i = data.length; - - do { - i++; - hint = "$prefix $i"; - } while (isDuplicateName(hint, data)); - - return hint; -} - -bool isDuplicateName(String name, List data) { - return data.any((e) => e.name == name || (e is Subject && e.children.any((child) => child.name == name))); -} - -String getTermName({required int termIndex}) { - final int termCount = getCurrentYear().termCount; - - if (termIndex == -1) return translations.year_overview; - - if (termIndex == termCount) return translations.exams; - - switch (termCount) { - case 4: - return "${translations.quarterOne} ${termIndex + 1}"; - case 3: - return "${translations.trimesterOne} ${termIndex + 1}"; - case 2: - return "${translations.semesterOne} ${termIndex + 1}"; - case 1: - return translations.yearOne; - default: - return "${translations.school_termOne} ${termIndex + 1}"; - } -} +// Project imports: +import "package:graded/calculations/calculation_object.dart"; +import "package:graded/calculations/manager.dart"; +import "package:graded/calculations/subject.dart"; +import "package:graded/localization/translations.dart"; + +String getHint(String prefix, List data) { + String hint = ""; + int i = data.length; + + do { + i++; + hint = "$prefix $i"; + } while (isDuplicateName(hint, data)); + + return hint; +} + +bool isDuplicateName(String name, List data) { + return data.any((e) => e.name == name || (e is Subject && e.children.any((child) => child.name == name))); +} + +String getTermName({required int termIndex}) { + final int termCount = getCurrentYear().termCount; + + if (termIndex == -1) return translations.year_overview; + + if (termIndex == termCount) return translations.exams; + + return switch (termCount) { + 4 => translations.quartile_num.replaceFirst("%s", (termIndex + 1).toString()), + 3 => translations.trimester_num.replaceFirst("%s", (termIndex + 1).toString()), + 2 => translations.semester_num.replaceFirst("%s", (termIndex + 1).toString()), + 1 => translations.yearOne, + _ => translations.school_term_num.replaceFirst("%s", (termIndex + 1).toString()), + }; +} + +String getTermNameShort({required int termIndex}) { + final int termCount = getCurrentYear().termCount; + + if (termIndex == -1) return translations.year_overview; + + return switch (termCount) { + 4 => translations.quartile_short_num.replaceFirst("%s", (termIndex + 1).toString()), + 3 => translations.trimester_short_num.replaceFirst("%s", (termIndex + 1).toString()), + 2 => translations.semester_short_num.replaceFirst("%s", (termIndex + 1).toString()), + 1 => translations.yearOne, + _ => translations.school_term_short_num.replaceFirst("%s", (termIndex + 1).toString()), + }; +} diff --git a/lib/ui/widgets/settings_tiles.dart b/lib/ui/widgets/settings_tiles.dart index 5770724..812e6bf 100644 --- a/lib/ui/widgets/settings_tiles.dart +++ b/lib/ui/widgets/settings_tiles.dart @@ -109,7 +109,7 @@ class TermCountSettingsTile extends StatelessWidget { settingKey: "term_count", selected: DefaultValues.termCount, values: { - 4: translations.quarterOther, + 4: translations.quartileOther, 3: translations.trimesterOther, 2: translations.semesterOther, 1: translations.yearOne,