Skip to content

Commit 2189545

Browse files
Fixed a bug where on the Syllabus Summary page the quizzes icons was not shown correctly. (All classic quizzes had locked icon, and all new quizzes had the default assignment icon). (#3301)
refs: MBL-18749 affects: Student, Teacher, Parent release note: Fix a bug where Syllabus Summary pages does not show correct icons for classic (locked) and new quizzes (default assignment icon).
1 parent 5bf853d commit 2189545

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

apps/student/src/main/java/com/instructure/student/mobius/syllabus/SyllabusPresenter.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ object SyllabusPresenter : Presenter<SyllabusModel, SyllabusViewState> {
9393

9494
private fun getAssignmentIcon(assignment: Assignment) = when {
9595
assignment.getSubmissionTypes().contains(Assignment.SubmissionType.ONLINE_QUIZ) -> com.instructure.student.R.drawable.ic_quiz
96+
assignment.getSubmissionTypes().contains(Assignment.SubmissionType.EXTERNAL_TOOL) &&
97+
assignment.externalToolAttributes?.url?.contains("quiz-lti") == true -> com.instructure.student.R.drawable.ic_quiz
9698
assignment.getSubmissionTypes().contains(Assignment.SubmissionType.DISCUSSION_TOPIC) -> com.instructure.student.R.drawable.ic_discussion
9799
else -> com.instructure.student.R.drawable.ic_assignment
98100
}

apps/teacher/src/main/java/com/instructure/teacher/features/syllabus/SyllabusPresenter.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ class SyllabusPresenter : Presenter<SyllabusModel, SyllabusViewState> {
9393
private fun getAssignmentIcon(assignment: Assignment): Int {
9494
return when {
9595
assignment.getSubmissionTypes().contains(Assignment.SubmissionType.ONLINE_QUIZ) -> R.drawable.ic_quiz
96+
assignment.getSubmissionTypes().contains(Assignment.SubmissionType.EXTERNAL_TOOL) &&
97+
assignment.externalToolAttributes?.url?.contains("quiz-lti") == true -> R.drawable.ic_quiz
9698
assignment.getSubmissionTypes().contains(Assignment.SubmissionType.DISCUSSION_TOPIC) -> R.drawable.ic_discussion
9799
else -> R.drawable.ic_assignment
98100
}

libs/pandautils/src/main/java/com/instructure/pandautils/utils/ScheduleItemExtensions.kt

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,33 @@ import java.util.Date
2626

2727
val ScheduleItem.iconRes: Int
2828
get() {
29+
val isClassicQuiz = this.assignment?.getSubmissionTypes()?.contains(SubmissionType.ONLINE_QUIZ).orDefault()
30+
val isNewQuiz = this.assignment?.getSubmissionTypes()?.contains(SubmissionType.EXTERNAL_TOOL).orDefault() &&
31+
this.assignment?.externalToolAttributes?.url?.contains("quiz-lti").orDefault()
32+
2933
return when {
3034
this.type == "event" -> R.drawable.ic_calendar
35+
isClassicQuiz && this.assignment?.isLocked.orDefault() -> R.drawable.ic_lock // For classic quizzes, use isLocked instead of lockedForUser (classic quizzes always return lockedForUser=true from API)
36+
isClassicQuiz -> R.drawable.ic_quiz
3137
this.assignment?.lockedForUser.orDefault() -> R.drawable.ic_lock
32-
this.assignment?.getSubmissionTypes()?.contains(SubmissionType.ONLINE_QUIZ).orDefault() -> R.drawable.ic_quiz
38+
isNewQuiz -> R.drawable.ic_quiz
3339
this.assignment?.getSubmissionTypes()?.contains(SubmissionType.DISCUSSION_TOPIC).orDefault() -> R.drawable.ic_discussion
3440
else -> R.drawable.ic_assignment
3541
}
3642
}
3743

3844
val ScheduleItem.contentDescriptionRes: Int
3945
get() {
46+
val isClassicQuiz = this.assignment?.getSubmissionTypes()?.contains(SubmissionType.ONLINE_QUIZ).orDefault()
47+
val isNewQuiz = this.assignment?.getSubmissionTypes()?.contains(SubmissionType.EXTERNAL_TOOL).orDefault() &&
48+
this.assignment?.externalToolAttributes?.url?.contains("quiz-lti").orDefault()
49+
4050
return when {
4151
this.type == "event" -> R.string.a11y_summaryEventContentDescription
52+
isClassicQuiz && this.assignment?.isLocked.orDefault() -> R.string.a11y_summaryLockedContentDescription // For classic quizzes, use isLocked instead of lockedForUser (classic quizzes always return lockedForUser=true from API)
53+
isClassicQuiz -> R.string.a11y_summaryQuizContentDescription
4254
this.assignment?.lockedForUser.orDefault() -> R.string.a11y_summaryLockedContentDescription
43-
this.assignment?.getSubmissionTypes()?.contains(SubmissionType.ONLINE_QUIZ).orDefault() -> R.string.a11y_summaryQuizContentDescription
55+
isNewQuiz -> R.string.a11y_summaryQuizContentDescription
4456
this.assignment?.getSubmissionTypes()?.contains(SubmissionType.DISCUSSION_TOPIC).orDefault() -> R.string.a11y_summaryDiscussionContentDescription
4557
else -> R.string.a11y_summaryAssignmentContentDescription
4658
}

0 commit comments

Comments
 (0)